
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Unknown calling convention */

bfd_boolean ia64_process_unwind(Filedata *filedata)

{
  bfd_vma *pbVar1;
  int *piVar2;
  ushort uVar3;
  Elf_Internal_Shdr *pEVar4;
  uint uVar5;
  FILE *pFVar6;
  undefined1 *puVar7;
  absaddr addr;
  absaddr *paVar8;
  Filedata *filedata_1;
  bfd_vma bVar9;
  uchar uVar10;
  uchar uVar11;
  undefined *puVar12;
  char *pcVar13;
  byte *pbVar14;
  uchar *puVar15;
  ia64_unw_table_entry *piVar16;
  bfd_boolean bVar17;
  char *pcVar18;
  int iVar19;
  uint uVar20;
  Elf_Internal_Shdr *pEVar21;
  group_list *pgVar22;
  Elf_Internal_Sym *pEVar23;
  uchar *puVar24;
  Elf_Internal_Sym *pEVar25;
  byte *pbVar26;
  Elf_Internal_Phdr *pEVar27;
  byte *pbVar28;
  size_t sVar29;
  ia64_unw_aux_info *piVar30;
  uint uVar31;
  byte *pbVar32;
  Elf_Internal_Phdr *pEVar33;
  uint uVar34;
  uint uVar35;
  int iVar36;
  undefined1 uVar37;
  bool bVar38;
  undefined1 uVar39;
  bool bVar40;
  byte bVar41;
  elf_vma eVar42;
  longlong lVar43;
  undefined *puVar44;
  undefined4 uVar45;
  FILE *__stream;
  bfd_vma in_stack_ffffff34;
  Elf_Internal_Shdr *local_c4;
  uint local_c0;
  void *local_bc;
  byte *local_b4;
  Elf_Internal_Sym *local_ac;
  char *local_a0;
  uint local_94;
  int local_90;
  bfd_boolean local_70;
  int in_body;
  char *procname;
  bfd_vma offset;
  ia64_unw_aux_info aux;
  
  bVar41 = 0;
  local_70 = 1;
  piVar30 = &aux;
  for (iVar19 = 0xe; iVar19 != 0; iVar19 = iVar19 + -1) {
    piVar30->table = (ia64_unw_table_entry *)0x0;
    piVar30 = (ia64_unw_aux_info *)&piVar30->table_len;
  }
  uVar20 = (filedata->file_header).e_shnum;
  pEVar21 = filedata->section_headers;
  if (uVar20 != 0) {
    local_c4 = (Elf_Internal_Shdr *)0x0;
    uVar31 = 0;
    do {
      while (pEVar21->sh_type != 2) {
        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));
LAB_0002baa7:
        uVar31 = uVar31 + 1;
        pEVar21 = pEVar21 + 1;
        if (uVar20 <= uVar31) goto LAB_0002bbaa;
      }
      if (uVar20 <= pEVar21->sh_link) goto LAB_0002baa7;
      if (is_32bit_elf == 0) {
        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);
      }
      else {
        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);
      }
      uVar20 = pEVar21->sh_link;
      pEVar4 = filedata->section_headers;
      if (aux.strtab != (char *)0x0) {
        pcVar13 = (char *)dcgettext();
        error(pcVar13);
        free(aux.strtab);
        local_70 = 0;
      }
      pcVar13 = (char *)dcgettext();
      aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,
                                    pEVar4[uVar20].sh_size,pcVar13);
      aux.strtab_size = 0;
      if (aux.strtab != (char *)0x0) {
        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;
      }
      uVar31 = uVar31 + 1;
      pEVar21 = pEVar21 + 1;
      uVar20 = (filedata->file_header).e_shnum;
    } while (uVar31 < uVar20);
LAB_0002bbaa:
    local_94 = 0;
    pEVar21 = local_c4;
    if (local_c4 != (Elf_Internal_Shdr *)0x0) {
LAB_0002bbd0:
      local_90 = (int)pEVar21 + -1;
      local_c4 = filedata->section_headers;
      if (uVar20 <= local_94) {
LAB_0002bc1b:
                    /* WARNING: Subroutine does not return */
        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");
      }
      pFVar6 = ((Filedata *)(local_c4 + local_94))->handle;
      filedata_1 = (Filedata *)(local_c4 + local_94);
      local_c0 = local_94;
      while (pFVar6 != (FILE *)0x70000001) {
        local_c0 = local_c0 + 1;
        if (local_c0 == uVar20) goto LAB_0002bc1b;
        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;
        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;
      }
      local_94 = local_c0 + 1;
      if ((filedata_1->file_size & 0x200) == 0) {
        pcVar13 = filedata->string_table;
        if (pcVar13 == (char *)0x0) {
LAB_0002c92b:
          pbVar28 = (byte *)dcgettext();
          iVar19 = 0x16;
          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;
          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;
          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar38 = *pbVar28 < *pbVar14;
            bVar40 = *pbVar28 == *pbVar14;
            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;
            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
          } while (bVar40);
          pcVar13 = filedata->string_table;
          if ((!bVar38 && !bVar40) == bVar38) {
            if ((pcVar13 == (char *)0x0) ||
               ((char *)filedata->string_table_length <= filedata_1->file_name)) {
              pbVar28 = (byte *)dcgettext();
              local_c4 = filedata->section_headers;
            }
            else {
              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);
              local_c4 = filedata->section_headers;
            }
            goto LAB_0002bd4e;
          }
          if (pcVar13 != (char *)0x0) {
            pcVar18 = filedata_1->file_name;
            goto LAB_0002c5fe;
          }
LAB_0002c9ae:
          pbVar28 = (byte *)dcgettext();
          iVar19 = 0xd;
          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;
          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;
          pbVar14 = (byte *)".IA_64.unwind";
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar38 = *pbVar28 < *pbVar14;
            bVar40 = *pbVar28 == *pbVar14;
            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;
            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
          } while (bVar40);
          if ((!bVar38 && !bVar40) == bVar38) {
            if ((filedata->string_table == (char *)0x0) ||
               ((char *)filedata->string_table_length <= filedata_1->file_name)) {
              local_b4 = (byte *)dcgettext();
            }
            else {
              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);
            }
LAB_0002ca17:
            local_b4 = local_b4 + 0xd;
          }
          else {
LAB_0002c62d:
            local_b4 = &DAT_0007bc55;
          }
          local_c4 = filedata->section_headers;
          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;
          pcVar13 = ".IA_64.unwind_info";
          local_c0 = 0;
          do {
            if (local_c4 == (Elf_Internal_Shdr *)0x0) {
              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;
              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;
              pbVar28 = (byte *)dcgettext();
              iVar19 = 0x12;
              pbVar14 = (byte *)pcVar13;
              do {
                if (iVar19 == 0) break;
                iVar19 = iVar19 + -1;
                uVar37 = *pbVar28 < *pbVar14;
                uVar39 = *pbVar28 == *pbVar14;
                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;
                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
              } while ((bool)uVar39);
              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {
                pbVar28 = (byte *)dcgettext();
                goto LAB_0002c699;
              }
            }
            else {
              pcVar18 = filedata->string_table;
              if ((pcVar18 == (char *)0x0) ||
                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {
                pbVar28 = (byte *)dcgettext();
                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;
                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;
                iVar19 = 0x12;
                pbVar14 = (byte *)pcVar13;
                do {
                  if (iVar19 == 0) break;
                  iVar19 = iVar19 + -1;
                  bVar38 = *pbVar28 < *pbVar14;
                  bVar40 = *pbVar28 == *pbVar14;
                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;
                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
                } while (bVar40);
                if ((!bVar38 && !bVar40) == bVar38) {
                  if (filedata->string_table == (char *)0x0) {
                    pbVar28 = (byte *)dcgettext();
                  }
                  else if (local_c4->sh_name < filedata->string_table_length) {
                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);
                  }
                  else {
                    pbVar28 = (byte *)dcgettext();
                  }
                  goto LAB_0002c699;
                }
              }
              else {
                bVar38 = CARRY4((uint)pcVar18,uVar20);
                pbVar28 = (byte *)(pcVar18 + uVar20);
                bVar40 = pbVar28 == (byte *)0x0;
                iVar19 = 0x12;
                pbVar14 = pbVar28;
                pbVar26 = (byte *)pcVar13;
                do {
                  if (iVar19 == 0) break;
                  iVar19 = iVar19 + -1;
                  bVar38 = *pbVar14 < *pbVar26;
                  bVar40 = *pbVar14 == *pbVar26;
                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;
                } while (bVar40);
                if ((!bVar38 && !bVar40) == bVar38) {
LAB_0002c699:
                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);
                  if (iVar19 == 0) goto LAB_0002be90;
                }
              }
            }
            local_c0 = local_c0 + 1;
            local_c4 = local_c4 + 1;
            uVar20 = (filedata->file_header).e_shnum;
          } while (local_c0 < uVar20);
        }
        else {
          pcVar18 = filedata_1->file_name;
          bVar38 = pcVar18 < (char *)filedata->string_table_length;
          bVar40 = pcVar18 == (char *)filedata->string_table_length;
          if (!bVar38) goto LAB_0002c92b;
          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);
          iVar19 = 0x16;
          pbVar14 = pbVar28;
          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar38 = *pbVar14 < *pbVar26;
            bVar40 = *pbVar14 == *pbVar26;
            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;
          } while (bVar40);
          if ((!bVar38 && !bVar40) != bVar38) {
LAB_0002c5fe:
            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;
            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);
            local_b4 = (byte *)(pcVar13 + (int)pcVar18);
            bVar40 = local_b4 == (byte *)0x0;
            iVar19 = 0xd;
            pbVar28 = local_b4;
            pbVar14 = (byte *)".IA_64.unwind";
            do {
              if (iVar19 == 0) break;
              iVar19 = iVar19 + -1;
              bVar38 = *pbVar28 < *pbVar14;
              bVar40 = *pbVar28 == *pbVar14;
              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;
              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
            } while (bVar40);
            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;
            goto LAB_0002c62d;
          }
LAB_0002bd4e:
          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;
          pcVar13 = ".gnu.linkonce.ia64unwi.";
          local_c0 = 0;
          do {
            if (local_c4 == (Elf_Internal_Shdr *)0x0) {
              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;
              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;
              pbVar14 = (byte *)dcgettext();
              iVar19 = 0x17;
              pbVar26 = (byte *)pcVar13;
              do {
                if (iVar19 == 0) break;
                iVar19 = iVar19 + -1;
                uVar37 = *pbVar14 < *pbVar26;
                uVar39 = *pbVar14 == *pbVar26;
                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;
              } while ((bool)uVar39);
              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {
                pbVar14 = (byte *)dcgettext();
                goto LAB_0002bdb1;
              }
            }
            else {
              pcVar18 = filedata->string_table;
              if ((pcVar18 == (char *)0x0) ||
                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {
                pbVar14 = (byte *)dcgettext();
                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;
                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;
                iVar19 = 0x17;
                pbVar26 = (byte *)pcVar13;
                do {
                  if (iVar19 == 0) break;
                  iVar19 = iVar19 + -1;
                  bVar38 = *pbVar14 < *pbVar26;
                  bVar40 = *pbVar14 == *pbVar26;
                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;
                } while (bVar40);
                if ((!bVar38 && !bVar40) == bVar38) {
                  if (filedata->string_table == (char *)0x0) {
                    pbVar14 = (byte *)dcgettext();
                  }
                  else if (local_c4->sh_name < filedata->string_table_length) {
                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);
                  }
                  else {
                    pbVar14 = (byte *)dcgettext();
                  }
                  goto LAB_0002bdb1;
                }
              }
              else {
                bVar38 = CARRY4((uint)pcVar18,uVar20);
                pbVar14 = (byte *)(pcVar18 + uVar20);
                bVar40 = pbVar14 == (byte *)0x0;
                iVar19 = 0x17;
                pbVar26 = pbVar14;
                pbVar32 = (byte *)pcVar13;
                do {
                  if (iVar19 == 0) break;
                  iVar19 = iVar19 + -1;
                  bVar38 = *pbVar26 < *pbVar32;
                  bVar40 = *pbVar26 == *pbVar32;
                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;
                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;
                } while (bVar40);
                if ((!bVar38 && !bVar40) == bVar38) {
LAB_0002bdb1:
                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));
                  if (iVar19 == 0) goto LAB_0002be90;
                }
              }
            }
            local_c0 = local_c0 + 1;
            local_c4 = local_c4 + 1;
            uVar20 = (filedata->file_header).e_shnum;
          } while (local_c0 < uVar20);
        }
        goto LAB_0002be9a;
      }
      if (((section_headers_groups != (group **)0x0) &&
          (section_headers_groups[local_c0] != (group *)0x0)) &&
         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)) {
        do {
          local_c4 = local_c4 + pgVar22->section_index;
          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {
LAB_0002c8dc:
            pbVar28 = (byte *)dcgettext();
            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;
            puVar7 = &stack0xffffff34;
          }
          else {
            uVar20 = local_c4->sh_name;
            pbVar28 = (byte *)(filedata->string_table + uVar20);
            bVar38 = uVar20 < filedata->string_table_length;
            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);
            if (!bVar38) goto LAB_0002c8dc;
          }
          bVar40 = puVar7 == (undefined1 *)0x0;
          iVar19 = 0x13;
          pbVar14 = (byte *)".IA_64.unwind_info";
          do {
            if (iVar19 == 0) break;
            iVar19 = iVar19 + -1;
            bVar38 = *pbVar28 < *pbVar14;
            bVar40 = *pbVar28 == *pbVar14;
            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;
            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
          } while (bVar40);
          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;
          pgVar22 = pgVar22->next;
          if (pgVar22 == (group_list *)0x0) break;
          local_c4 = filedata->section_headers;
        } while( true );
      }
      goto LAB_0002bc78;
    }
  }
  pcVar13 = (char *)dcgettext();
  printf(pcVar13);
LAB_0002c274:
  if (aux.symtab != (Elf_Internal_Sym *)0x0) {
    free(aux.symtab);
  }
  if (aux.strtab != (char *)0x0) {
    free(aux.strtab);
  }
  return local_70;
LAB_0002be90:
  uVar20 = (filedata->file_header).e_shnum;
LAB_0002be9a:
  if (local_c0 == uVar20) {
LAB_0002bc78:
    pcVar13 = (char *)dcgettext();
    printf(pcVar13);
    if (filedata->string_table == (char *)0x0) {
      printf("%d");
    }
    else {
      printable_section_name
                ((Filedata *)&filedata->string_table,
                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);
      printf("\'%s\'");
    }
    if (pEVar21 == (Elf_Internal_Shdr *)0x1) goto LAB_0002c274;
    goto LAB_0002bce7;
  }
  aux.info_addr._0_4_ = (uint)local_c4->sh_addr;
  aux.info_addr._4_4_ = *(int *)((int)&local_c4->sh_addr + 4);
  pcVar13 = (char *)dcgettext();
  aux.info = (uchar *)get_data((void *)0x0,filedata,(ulong)local_c4->sh_offset,1,local_c4->sh_size,
                               pcVar13);
  aux.info_size = 0;
  if (aux.info != (uchar *)0x0) {
    aux.info_size = (ulong)local_c4->sh_size;
  }
  pcVar13 = (char *)dcgettext();
  printf(pcVar13);
  if (filedata->string_table == (char *)0x0) {
    printf("%d");
  }
  else {
    printable_section_name
              ((Filedata *)&filedata->string_table,
               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);
    printf("\'%s\'");
  }
  __udivdi3();
  pcVar13 = (char *)dcgettext();
  printf(pcVar13);
  aux.table_len = 0;
  uVar20 = (filedata->file_header).e_phnum;
  if (uVar20 == 0) {
    local_b4 = (byte *)(filedata_1->file_header).e_entry;
    uVar20 = (uint)aux.seg_base;
    uVar31 = aux.seg_base._4_4_;
LAB_0002c050:
    aux.seg_base._4_4_ = uVar31;
    aux.seg_base._0_4_ = uVar20;
    pcVar13 = (char *)dcgettext();
    puVar15 = (uchar *)get_data((void *)0x0,filedata,
                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)
                                ,pcVar13);
    if (puVar15 != (uchar *)0x0) {
      aux.table_len = (uint)local_b4 / (eh_addr_size * 3);
      piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24);
      uVar20 = eh_addr_size;
      local_c4 = (Elf_Internal_Shdr *)puVar15;
      aux.table = piVar16;
      if (!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)) {
        do {
          (piVar16->start).section = 0;
          (piVar16->end).section = 0;
          (piVar16->info).section = 0;
          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);
          (piVar16->start).offset = eVar42;
          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);
          eVar42 = (*byte_get)(puVar24,eh_addr_size);
          (piVar16->end).offset = eVar42;
          puVar24 = puVar24 + eh_addr_size;
          eVar42 = (*byte_get)(puVar24,eh_addr_size);
          uVar20 = eh_addr_size;
          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);
          pbVar1 = &(piVar16->start).offset;
          bVar9 = *pbVar1;
          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;
          piVar2 = (int *)((int)&(piVar16->start).offset + 4);
          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);
          pbVar1 = &(piVar16->end).offset;
          bVar9 = *pbVar1;
          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;
          piVar2 = (int *)((int)&(piVar16->end).offset + 4);
          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);
          paVar8 = &piVar16->info;
          piVar16 = piVar16 + 1;
          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);
        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);
      }
      free(puVar15);
      pEVar21 = filedata->section_headers;
      uVar20 = (filedata->file_header).e_shnum;
      local_c4 = pEVar21;
      if (pEVar21 < pEVar21 + uVar20) {
        do {
          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&
             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {
            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,
                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);
            if (bVar17 == 0) {
              free(aux.table);
              aux.table = (ia64_unw_table_entry *)0x0;
              aux.table_len = 0;
              goto LAB_0002c236;
            }
            local_a0 = procname;
            local_b4 = (byte *)(void *)offset;
            local_bc = (void *)offset;
            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {
              do {
                local_ac = aux.symtab;
                uVar20 = *(uint *)((int)local_bc + 0xc);
                if (is_32bit_elf == 0) {
                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,
                                          in_stack_ffffff34);
                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);
                  bVar38 = pbVar28 == (byte *)0x0;
                  if (bVar38) goto LAB_0002c4e0;
LAB_0002c3b9:
                  local_ac = local_ac + uVar20;
                  bVar40 = false;
                  iVar19 = 0xd;
                  pbVar14 = (byte *)"R_IA64_SEGREL";
                  do {
                    if (iVar19 == 0) break;
                    iVar19 = iVar19 + -1;
                    bVar40 = *pbVar28 < *pbVar14;
                    bVar38 = *pbVar28 == *pbVar14;
                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;
                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;
                  } while (bVar38);
                  if ((!bVar40 && !bVar38) != bVar40) {
                    pcVar13 = (char *)dcgettext();
                    goto LAB_0002c4fb;
                  }
                  uVar20 = __udivdi3();
                  if (aux.table_len <= uVar20) {
                    pcVar13 = (char *)dcgettext();
                    goto LAB_0002c4fb;
                  }
                  __udivdi3();
                  lVar43 = __umoddi3();
                  piVar16 = aux.table + uVar20;
                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;
                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +
                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);
                  local_ac._0_2_ = (ushort)local_ac->st_shndx;
                  if (lVar43 == 1) {
                    *(int *)&(piVar16->end).offset = iVar19;
                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;
                    (piVar16->end).section = (ushort)local_ac;
                  }
                  else if (lVar43 == 2) {
                    (piVar16->info).section = (ushort)local_ac;
                    *(int *)&(piVar16->info).offset = iVar19;
                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;
                  }
                  else {
                    (piVar16->start).section = (ushort)local_ac;
                    *(int *)&(piVar16->start).offset = iVar19;
                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;
                  }
                }
                else {
                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;
                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);
                  bVar38 = pbVar28 == (byte *)0x0;
                  if (!bVar38) goto LAB_0002c3b9;
LAB_0002c4e0:
                  pcVar13 = (char *)dcgettext();
LAB_0002c4fb:
                  warn(pcVar13);
                  local_b4 = (byte *)(void *)offset;
                  local_a0 = procname;
                }
                local_bc = (void *)((int)local_bc + 0x18);
              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));
            }
            free(local_b4);
            pEVar21 = filedata->section_headers;
            uVar20 = (filedata->file_header).e_shnum;
          }
          local_c4 = local_c4 + 1;
        } while (local_c4 < pEVar21 + uVar20);
      }
      if (aux.table_len != 0) {
        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);
        aux.nfuns = aux.nsyms;
        if (aux.nsyms != 0) {
          pEVar23 = aux.symtab;
          sVar29 = 0;
          do {
            iVar19 = (int)pEVar23->st_value;
            aux.nfuns = sVar29;
            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&
               ((pEVar23->st_info & 0xf) == 2)) {
              aux.nfuns = sVar29 + 1;
              pEVar25 = aux.funtab + sVar29;
              *(int *)&pEVar25->st_value = iVar19;
              *(undefined4 *)((int)&pEVar25->st_value + 4) =
                   *(undefined4 *)((int)&pEVar23->st_value + 4);
              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;
              *(undefined4 *)((int)&pEVar25->st_size + 4) =
                   *(undefined4 *)((int)&pEVar23->st_size + 4);
              pEVar25->st_name = pEVar23->st_name;
              uVar10 = pEVar23->st_other;
              uVar11 = pEVar23->st_target_internal;
              uVar37 = pEVar23->field_0x17;
              pEVar25->st_info = pEVar23->st_info;
              pEVar25->st_other = uVar10;
              pEVar25->st_target_internal = uVar11;
              pEVar25->field_0x17 = uVar37;
              pEVar25->st_shndx = pEVar23->st_shndx;
            }
            pEVar23 = pEVar23 + 1;
            sVar29 = aux.nfuns;
          } while (aux.symtab + aux.nsyms != pEVar23);
        }
        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);
        puVar12 = PTR_stdout_000b3fd8;
        if (aux.table < aux.table + aux.table_len) {
          piVar16 = aux.table;
          do {
            addr._2_2_ = 0;
            addr.section = (piVar16->start).section;
            addr.offset._0_4_ = (int)(piVar16->start).offset;
            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);
            find_symbol_for_address
                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,
                       aux.strtab,aux.strtab_size,addr,&procname,&offset);
            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);
            if ((procname != (char *)0x0) &&
               (fputs(procname,*(FILE **)puVar12),
               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {
              printf("+%lx");
            }
            uVar45 = 1;
            puVar44 = &DAT_00078932;
            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);
            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);
            __stream = *(FILE **)puVar12;
            uVar45 = 0x2d;
            fputc(0x2d,__stream);
            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);
            printf("], info at +0x%lx\n");
            if (aux.info != (uchar *)0x0) {
              uVar3 = (piVar16->info).section;
              uVar20 = (uint)(piVar16->info).offset;
              uVar31 = uVar20 - (uint)aux.info_addr;
              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -
                       (uint)(uVar20 < (uint)aux.info_addr);
              if (uVar3 == 0) {
                if (uVar34 < (uVar31 < aux.info_size)) {
LAB_0002cb5e:
                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);
                  eVar42 = (*byte_get)(puVar15,8);
                  uVar20 = (uint)(eVar42 >> 0x20);
                  pcVar13 = "";
                  if ((eVar42 & 0x100000000) != 0) {
                    pcVar13 = " ehandler";
                  }
                  uVar31 = uVar20 >> 0x10;
                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13
                        );
                  if (uVar31 == 1) {
                    in_body = 0;
                    puVar24 = aux.info + aux.info_size;
                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {
                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;
                    }
                    puVar15 = puVar15 + 8;
                    if (puVar15 < puVar24) {
                      do {
                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);
                      } while (puVar15 < puVar24);
                    }
                  }
                  else {
                    pcVar13 = (char *)dcgettext();
                    printf(pcVar13);
                  }
                  goto LAB_0002cbe7;
                }
              }
              else {
                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;
                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +
                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {
                  uVar20 = uVar5 + uVar20;
                  goto LAB_0002cb5e;
                }
              }
              pcVar13 = (char *)dcgettext();
              warn(pcVar13);
            }
LAB_0002cbe7:
            piVar16 = piVar16 + 1;
          } while (piVar16 < aux.table + aux.table_len);
        }
        free(aux.funtab);
      }
    }
  }
  else {
    pEVar27 = filedata->program_headers;
    if (pEVar27 != (Elf_Internal_Phdr *)0x0) {
LAB_0002bfdd:
      local_b4 = (byte *)(filedata_1->file_header).e_entry;
      pEVar33 = pEVar27 + uVar20;
      for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;
          pEVar27 = pEVar27 + 1) {
        if (pEVar27->p_type == 1) {
          uVar20 = (uint)pEVar27->p_vaddr;
          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);
          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);
          uVar5 = *(uint *)(filedata_1->file_header).e_ident;
          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&
             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +
                       (uint)CARRY4(uVar5,(uint)local_b4),
             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +
                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),
             uVar34 <= uVar35 &&
             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))
          break;
        }
      }
      goto LAB_0002c050;
    }
    bVar17 = get_program_headers(filedata);
    if (bVar17 != 0) {
      pEVar27 = filedata->program_headers;
      uVar20 = (filedata->file_header).e_phnum;
      goto LAB_0002bfdd;
    }
  }
  if (aux.table != (ia64_unw_table_entry *)0x0) {
    free(aux.table);
  }
LAB_0002c236:
  if (aux.info != (uchar *)0x0) {
    free(aux.info);
  }
  aux.table = (ia64_unw_table_entry *)0x0;
  aux.info = (uchar *)0x0;
  if (local_90 == 0) goto LAB_0002c274;
LAB_0002bce7:
  uVar20 = (filedata->file_header).e_shnum;
  pEVar21 = (Elf_Internal_Shdr *)local_90;
  goto LAB_0002bbd0;
}



undefined4 FUN_0002ba30(int param_1)

{
  ushort uVar1;
  undefined4 *puVar2;
  uint uVar3;
  int iVar4;
  undefined1 *puVar5;
  code *pcVar6;
  char *pcVar7;
  int *piVar8;
  byte *pbVar9;
  undefined *puVar10;
  code *pcVar11;
  int extraout_ECX;
  int iVar12;
  uint *puVar13;
  uint *puVar14;
  uint uVar15;
  int unaff_EBP;
  byte *pbVar16;
  code *pcVar17;
  uint uVar18;
  code **ppcVar19;
  int *piVar20;
  uint uVar21;
  int iVar22;
  byte *pbVar23;
  undefined1 uVar24;
  bool bVar25;
  undefined1 uVar26;
  bool bVar27;
  byte bVar28;
  undefined8 uVar29;
  longlong lVar30;
  ulonglong uVar31;
  undefined1 auStack_cc [8];
  code *local_c4;
  int *local_c0;
  code *local_bc;
  uint local_b8;
  code *local_b4;
  uint local_b0;
  code *local_ac;
  uint local_a8;
  uint *local_a4;
  char *local_a0;
  void *local_9c;
  uint local_98;
  int *local_94;
  byte *local_90;
  code *local_8c;
  char **local_88;
  code *local_84;
  undefined4 local_80;
  code **local_7c;
  undefined4 *local_78;
  char *local_74;
  undefined4 local_70;
  undefined4 local_64;
  char *local_60;
  code *local_5c;
  int local_58;
  code *local_54;
  uint local_50;
  void *local_4c;
  code *local_48;
  code *local_44;
  uint local_40;
  uint local_3c;
  uint local_38;
  int *local_34;
  size_t local_30;
  void *local_2c;
  size_t local_28;
  void *local_24;
  int local_20;
  
  bVar28 = 0;
  pcVar6 = (code *)FUN_0004ab89();
  local_70 = 1;
  ppcVar19 = &local_54;
  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {
    *ppcVar19 = pcVar6;
    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;
  }
  piVar8 = *(int **)(param_1 + 0x54);
  iVar12 = *(int *)(param_1 + 0x5c);
  if (piVar8 != (int *)0x0) {
    local_bc = (code *)(unaff_EBP + 0x4c725);
    local_c4 = (code *)0x0;
    piVar20 = (int *)0x0;
    local_a4 = (uint *)(unaff_EBP + 0x577cb);
LAB_0002bab7:
    do {
      if (*(int *)(iVar12 + 4) == 2) {
        if (*(int **)(iVar12 + 0x28) < piVar8) {
          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {
            local_34 = (int *)FUN_00022830();
          }
          else {
            local_34 = (int *)FUN_000222e0();
          }
          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);
          if (local_24 != (void *)0x0) {
            dcgettext();
            error();
            free(local_24);
            local_70 = 0;
          }
          dcgettext();
          piVar8 = local_c0;
          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);
          local_20 = 0;
          if (local_24 != (void *)0x0) {
            local_20 = piVar8[8];
          }
          piVar20 = (int *)((int)piVar20 + 1);
          iVar12 = iVar12 + 0x48;
          piVar8 = *(int **)(param_1 + 0x54);
          if (piVar8 <= piVar20) break;
          goto LAB_0002bab7;
        }
      }
      else {
        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));
      }
      piVar20 = (int *)((int)piVar20 + 1);
      iVar12 = iVar12 + 0x48;
    } while (piVar20 < piVar8);
    local_94 = (int *)0x0;
    local_90 = (byte *)((int)local_c4 - 1);
    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);
    if (local_c4 != (code *)0x0) {
LAB_0002bbd0:
      puVar13 = *(uint **)(param_1 + 0x5c);
      puVar14 = puVar13 + (int)local_94 * 0x12;
      if (piVar8 <= local_94) {
LAB_0002bc1b:
        local_a4 = puVar14;
                    /* WARNING: Subroutine does not return */
        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,
                      (char *)(unaff_EBP + 0x62a1f));
      }
      uVar15 = puVar14[1];
      local_a4 = puVar14;
      piVar20 = local_94;
      while (uVar15 != 0x70000001) {
        piVar20 = (int *)((int)piVar20 + 1);
        if (piVar20 == piVar8) goto LAB_0002bc1b;
        uVar15 = local_a4[0x13];
        local_a4 = local_a4 + 0x12;
      }
      local_94 = (int *)((int)piVar20 + 1);
      local_c0 = piVar20;
      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {
        uVar15 = *(uint *)(param_1 + 100);
        if (uVar15 == 0) {
LAB_0002c92b:
          pbVar9 = (byte *)dcgettext();
          iVar12 = 0x16;
          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;
          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar9 < *pbVar16;
            bVar27 = *pbVar9 == *pbVar16;
            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;
            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;
          } while (bVar27);
          uVar15 = *(uint *)(param_1 + 100);
          if ((!bVar25 && !bVar27) == bVar25) {
            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {
              local_c4 = (code *)dcgettext();
              puVar13 = *(uint **)(param_1 + 0x5c);
            }
            else {
              local_c4 = (code *)(*local_a4 + uVar15);
              puVar13 = *(uint **)(param_1 + 0x5c);
            }
            goto LAB_0002bd4e;
          }
          if (uVar15 != 0) {
            uVar18 = *local_a4;
            goto LAB_0002c5fe;
          }
LAB_0002c9ae:
          pbVar9 = (byte *)dcgettext();
          iVar12 = 0xd;
          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;
          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar9 < *pbVar16;
            bVar27 = *pbVar9 == *pbVar16;
            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;
            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;
          } while (bVar27);
          if ((!bVar25 && !bVar27) == bVar25) {
            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {
              pbVar9 = (byte *)dcgettext();
            }
            else {
              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));
            }
LAB_0002ca17:
            local_b4 = (code *)(pbVar9 + 0xd);
          }
          else {
LAB_0002c62d:
            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);
          }
          local_c4 = *(code **)(param_1 + 0x5c);
          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;
          local_bc = FUN_0004ce60 + unaff_EBP;
          local_c0 = (int *)0x0;
          local_ac = (code *)(unaff_EBP + 0x4b0b1);
          local_9c = (void *)(unaff_EBP + 0x4b727);
          do {
            if (local_c4 == (code *)0x0) {
              uVar24 = auStack_cc < (undefined1 *)0x4;
              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;
              local_a0 = (char *)(unaff_EBP + 0x4b720);
              pcVar6 = (code *)dcgettext();
              iVar12 = 0x12;
              pcVar17 = local_bc;
              do {
                if (iVar12 == 0) break;
                iVar12 = iVar12 + -1;
                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;
                uVar26 = *pcVar6 == *pcVar17;
                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;
                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
              } while ((bool)uVar26);
              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {
                pcVar6 = (code *)dcgettext();
                goto LAB_0002c699;
              }
            }
            else {
              uVar15 = *(uint *)(param_1 + 100);
              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)
                 ) {
                pcVar6 = (code *)dcgettext();
                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;
                iVar12 = 0x12;
                pcVar17 = local_bc;
                do {
                  if (iVar12 == 0) break;
                  iVar12 = iVar12 + -1;
                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;
                  bVar27 = *pcVar6 == *pcVar17;
                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;
                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                } while (bVar27);
                if ((!bVar25 && !bVar27) == bVar25) {
                  if (*(int *)(param_1 + 100) == 0) {
                    pcVar6 = (code *)dcgettext();
                  }
                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {
                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);
                  }
                  else {
                    pcVar6 = (code *)dcgettext();
                  }
                  goto LAB_0002c699;
                }
              }
              else {
                bVar25 = CARRY4(uVar15,uVar18);
                pcVar6 = (code *)(uVar15 + uVar18);
                bVar27 = pcVar6 == (code *)0x0;
                iVar12 = 0x12;
                pcVar17 = pcVar6;
                pcVar11 = local_bc;
                do {
                  if (iVar12 == 0) break;
                  iVar12 = iVar12 + -1;
                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;
                  bVar27 = *pcVar17 == *pcVar11;
                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;
                } while (bVar27);
                if ((!bVar25 && !bVar27) == bVar25) {
LAB_0002c699:
                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);
                  if (iVar12 == 0) goto LAB_0002be90;
                }
              }
            }
            local_c0 = (int *)((int)local_c0 + 1);
            local_c4 = (code *)((int)local_c4 + 0x48);
            piVar8 = *(int **)(param_1 + 0x54);
          } while (local_c0 < piVar8);
        }
        else {
          uVar18 = *local_a4;
          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);
          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);
          if (!bVar25) goto LAB_0002c92b;
          local_c4 = (code *)(uVar15 + uVar18);
          iVar12 = 0x16;
          puVar14 = (uint *)local_c4;
          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = (byte)*puVar14 < *pbVar9;
            bVar27 = (byte)*puVar14 == *pbVar9;
            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);
            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;
          } while (bVar27);
          if ((!bVar25 && !bVar27) != bVar25) {
LAB_0002c5fe:
            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;
            bVar25 = CARRY4(uVar18,uVar15);
            pbVar9 = (byte *)(uVar18 + uVar15);
            bVar27 = pbVar9 == (byte *)0x0;
            iVar12 = 0xd;
            pbVar16 = pbVar9;
            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);
            do {
              if (iVar12 == 0) break;
              iVar12 = iVar12 + -1;
              bVar25 = *pbVar16 < *pbVar23;
              bVar27 = *pbVar16 == *pbVar23;
              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;
              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;
            } while (bVar27);
            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;
            goto LAB_0002c62d;
          }
LAB_0002bd4e:
          local_b4 = (code *)((int)local_c4 + 0x16);
          local_c4 = (code *)puVar13;
          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;
          local_bc = (code *)(unaff_EBP + 0x4ce8a);
          local_c0 = (int *)0x0;
          local_ac = (code *)(unaff_EBP + 0x4b0b1);
          local_9c = (void *)(unaff_EBP + 0x4b727);
          do {
            if (local_c4 == (code *)0x0) {
              uVar24 = auStack_cc < (undefined1 *)0x4;
              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;
              local_a0 = (char *)(unaff_EBP + 0x4b720);
              pcVar6 = (code *)dcgettext();
              iVar12 = 0x17;
              pcVar17 = local_bc;
              do {
                if (iVar12 == 0) break;
                iVar12 = iVar12 + -1;
                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;
                uVar26 = *pcVar6 == *pcVar17;
                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;
                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
              } while ((bool)uVar26);
              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {
                pcVar6 = (code *)dcgettext();
                goto LAB_0002bdb1;
              }
            }
            else {
              uVar15 = *(uint *)(param_1 + 100);
              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)
                 ) {
                pcVar6 = (code *)dcgettext();
                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;
                iVar12 = 0x17;
                pcVar17 = local_bc;
                do {
                  if (iVar12 == 0) break;
                  iVar12 = iVar12 + -1;
                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;
                  bVar27 = *pcVar6 == *pcVar17;
                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;
                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                } while (bVar27);
                if ((!bVar25 && !bVar27) == bVar25) {
                  if (*(int *)(param_1 + 100) == 0) {
                    pcVar6 = (code *)dcgettext();
                  }
                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {
                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);
                  }
                  else {
                    pcVar6 = (code *)dcgettext();
                  }
                  goto LAB_0002bdb1;
                }
              }
              else {
                bVar25 = CARRY4(uVar15,uVar18);
                pcVar6 = (code *)(uVar15 + uVar18);
                bVar27 = pcVar6 == (code *)0x0;
                iVar12 = 0x17;
                pcVar17 = pcVar6;
                pcVar11 = local_bc;
                do {
                  if (iVar12 == 0) break;
                  iVar12 = iVar12 + -1;
                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;
                  bVar27 = *pcVar17 == *pcVar11;
                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;
                } while (bVar27);
                if ((!bVar25 && !bVar27) == bVar25) {
LAB_0002bdb1:
                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);
                  if (iVar12 == 0) goto LAB_0002be90;
                }
              }
            }
            local_c0 = (int *)((int)local_c0 + 1);
            local_c4 = (code *)((int)local_c4 + 0x48);
            piVar8 = *(int **)(param_1 + 0x54);
          } while (local_c0 < piVar8);
        }
        goto LAB_0002be9a;
      }
      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&
          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),
          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {
        local_bc = FUN_0004ce60 + unaff_EBP;
        local_ac = (code *)(unaff_EBP + 0x4b0b1);
        local_a0 = (char *)(unaff_EBP + 0x4b727);
        do {
          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);
          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {
LAB_0002c8dc:
            local_b4 = pcVar6;
            pcVar17 = (code *)dcgettext();
            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
            pcVar6 = local_b4;
            puVar5 = auStack_cc;
          }
          else {
            uVar15 = *(uint *)local_c4;
            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);
            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);
            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));
            if (!bVar25) goto LAB_0002c8dc;
          }
          bVar27 = puVar5 == (undefined1 *)0x0;
          iVar12 = 0x13;
          pcVar11 = local_bc;
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;
            bVar27 = *pcVar17 == *pcVar11;
            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;
          } while (bVar27);
          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;
          pcVar6 = *(code **)pcVar6;
          if (pcVar6 == (code *)0x0) break;
          puVar13 = *(uint **)(param_1 + 0x5c);
        } while( true );
      }
      goto LAB_0002bc78;
    }
  }
  pcVar7 = (char *)dcgettext();
  printf(pcVar7);
LAB_0002c274:
  if (local_34 != (int *)0x0) {
    free(local_34);
  }
  if (local_24 != (void *)0x0) {
    free(local_24);
  }
  return local_70;
LAB_0002be90:
  piVar8 = *(int **)(param_1 + 0x54);
LAB_0002be9a:
  pcVar6 = local_c4;
  if (local_c0 == piVar8) {
LAB_0002bc78:
    pcVar7 = (char *)dcgettext();
    printf(pcVar7);
    if (*(int *)(param_1 + 100) == 0) {
      printf((char *)(unaff_EBP + 0x67e12));
    }
    else {
      FUN_00022190();
      printf((char *)(unaff_EBP + 0x4ceb0));
    }
    goto joined_r0x0002c26e;
  }
  local_44 = *(code **)((int)local_c4 + 0x10);
  local_40 = *(uint *)((int)local_c4 + 0x14);
  dcgettext();
  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));
  local_48 = (code *)0x0;
  if (local_4c != (void *)0x0) {
    local_48 = *(code **)((int)pcVar6 + 0x20);
  }
  pcVar7 = (char *)dcgettext();
  printf(pcVar7);
  if (*(int *)(param_1 + 100) == 0) {
    printf((char *)(unaff_EBP + 0x67e12));
  }
  else {
    FUN_00022190();
    printf((char *)(unaff_EBP + 0x4ceb0));
  }
  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);
  FUN_0006b5b0();
  pcVar7 = (char *)dcgettext();
  printf(pcVar7);
  local_50 = 0;
  iVar12 = *(int *)(param_1 + 0x4c);
  if (iVar12 == 0) {
    local_b0 = local_a4[9];
    local_b4 = (code *)local_a4[8];
    uVar15 = local_3c;
    uVar18 = local_38;
LAB_0002c050:
    local_38 = uVar18;
    local_3c = uVar15;
    dcgettext();
    pcVar6 = local_b4;
    local_80 = 0;
    local_84 = local_b4;
    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);
    piVar8 = local_c0;
    if (local_bc != (code *)0x0) {
      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);
      local_b4 = pcVar6;
      pcVar6 = (code *)FUN_0005db00();
      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);
      local_c4 = local_bc;
      local_54 = pcVar6;
      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {
        do {
          pcVar11 = local_ac;
          pcVar17 = local_c4;
          *(undefined2 *)pcVar6 = 0;
          *(undefined2 *)(pcVar6 + 0xc) = 0;
          *(undefined2 *)(pcVar6 + 0x18) = 0;
          uVar29 = (**(code **)local_ac)();
          *(undefined8 *)(pcVar6 + 4) = uVar29;
          iVar12 = *local_c0;
          uVar29 = (**(code **)pcVar11)();
          *(undefined8 *)(pcVar6 + 0x10) = uVar29;
          iVar22 = *local_c0;
          lVar30 = (**(code **)pcVar11)();
          iVar4 = *local_c0;
          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;
          pcVar17 = pcVar6 + 4;
          uVar15 = *(uint *)pcVar17;
          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;
          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);
          pcVar17 = pcVar6 + 0x10;
          uVar15 = *(uint *)pcVar17;
          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;
          *(uint *)(pcVar6 + 0x14) =
               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);
          pcVar17 = pcVar6 + 0x1c;
          pcVar6 = pcVar6 + 0x24;
          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);
        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));
      }
      free(local_bc);
      local_8c = (code *)(unaff_EBP + 0x4cedf);
      puVar14 = *(uint **)(param_1 + 0x5c);
      uVar15 = *(uint *)(param_1 + 0x54);
      local_c4 = (code *)puVar14;
      if (puVar14 < puVar14 + uVar15 * 0x12) {
        do {
          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&
             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {
            iVar12 = FUN_0001e360();
            if (iVar12 == 0) {
              free(local_54);
              local_54 = (code *)0x0;
              local_50 = 0;
              goto LAB_0002c236;
            }
            local_a0 = local_60;
            local_b4 = local_5c;
            local_bc = local_5c;
            if (local_5c < local_5c + (int)local_60 * 0x18) {
              local_88 = (char **)(param_1 + 0x42);
              local_7c = (code **)(unaff_EBP + 0x5787f);
              do {
                piVar8 = local_34;
                uVar15 = *(uint *)(local_bc + 0xc);
                uVar18 = *(uint *)(local_bc + 8);
                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {
                  local_9c = (void *)FUN_00021e40();
                  pcVar6 = (code *)FUN_00015c60();
                  local_ac = (code *)(piVar8 + uVar15 * 7);
                  bVar25 = pcVar6 == (code *)0x0;
                  if (!bVar25) goto LAB_0002c3b9;
LAB_0002c4e0:
                  dcgettext();
LAB_0002c4fb:
                  warn();
                  local_b4 = local_5c;
                  local_a0 = local_60;
                }
                else {
                  local_9c = (void *)(uVar18 & 0xff);
                  pcVar6 = (code *)FUN_00015c60();
                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);
                  bVar25 = pcVar6 == (code *)0x0;
                  if (bVar25) goto LAB_0002c4e0;
LAB_0002c3b9:
                  bVar27 = false;
                  iVar12 = 0xd;
                  pcVar17 = pcVar6;
                  pcVar11 = local_8c;
                  do {
                    if (iVar12 == 0) break;
                    iVar12 = iVar12 + -1;
                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;
                    bVar25 = *pcVar17 == *pcVar11;
                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;
                  } while (bVar25);
                  if ((!bVar27 && !bVar25) != bVar27) {
                    local_b4 = pcVar6;
                    dcgettext();
                    goto LAB_0002c4fb;
                  }
                  local_9c = *(void **)local_bc;
                  local_98 = *(uint *)(local_bc + 4);
                  uVar15 = FUN_0006b5b0();
                  if (local_50 <= uVar15) {
                    dcgettext();
                    goto LAB_0002c4fb;
                  }
                  FUN_0006b5b0();
                  lVar30 = FUN_0006b6c0();
                  pcVar6 = local_54 + uVar15 * 0x24;
                  pcVar17 = *(code **)(local_ac + 0x18);
                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;
                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +
                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);
                  local_ac._0_2_ = SUB42(pcVar17,0);
                  local_ac = pcVar17;
                  if (lVar30 == 1) {
                    *(int *)(pcVar6 + 0x10) = iVar12;
                    *(int *)(pcVar6 + 0x14) = iVar22;
                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;
                  }
                  else if (lVar30 == 2) {
                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;
                    *(int *)(pcVar6 + 0x1c) = iVar12;
                    *(int *)(pcVar6 + 0x20) = iVar22;
                  }
                  else {
                    *(undefined2 *)pcVar6 = local_ac._0_2_;
                    *(int *)(pcVar6 + 4) = iVar12;
                    *(int *)(pcVar6 + 8) = iVar22;
                  }
                }
                local_bc = local_bc + 0x18;
              } while (local_bc < local_b4 + (int)local_a0 * 0x18);
            }
            free(local_b4);
            puVar14 = *(uint **)(param_1 + 0x5c);
            uVar15 = *(uint *)(param_1 + 0x54);
          }
          local_c4 = (code *)((int)local_c4 + 0x48);
        } while (local_c4 < puVar14 + uVar15 * 0x12);
      }
      if (local_50 != 0) {
        local_2c = (void *)FUN_0006b190();
        local_28 = local_30;
        if (local_30 != 0) {
          local_28 = 0;
          piVar8 = local_34;
          do {
            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {
              iVar12 = local_28 * 0x1c;
              local_28 = local_28 + 1;
              piVar20 = (int *)(iVar12 + (int)local_2c);
              *piVar20 = *piVar8;
              piVar20[1] = piVar8[1];
              piVar20[2] = piVar8[2];
              piVar20[3] = piVar8[3];
              piVar20[4] = piVar8[4];
              piVar20[5] = piVar8[5];
              piVar20[6] = piVar8[6];
            }
            piVar8 = piVar8 + 7;
          } while (local_34 + local_30 * 7 != piVar8);
        }
        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));
        if (local_54 < local_54 + local_50 * 0x24) {
          local_88 = &local_60;
          local_7c = &local_5c;
          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);
          local_a0 = (char *)(unaff_EBP + 0x4ceed);
          local_9c = (void *)(unaff_EBP + 0x4cef5);
          local_8c = (code *)(unaff_EBP + 0x4cefa);
          local_74 = (char *)(unaff_EBP + 0x4cef0);
          pcVar6 = local_54;
          do {
            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));
            pcVar17 = local_c4;
            fwrite(local_a0,1,2,*(FILE **)local_c4);
            if ((local_60 != (char *)0x0) &&
               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {
              printf(local_74);
            }
            pcVar17 = local_c4;
            fwrite(local_9c,1,4,*(FILE **)local_c4);
            FUN_0001e910();
            fputc(0x2d,*(FILE **)pcVar17);
            FUN_0001e910();
            printf((char *)local_8c);
            if (local_4c != (void *)0x0) {
              uVar1 = *(ushort *)(pcVar6 + 0x18);
              local_b4 = *(code **)(pcVar6 + 0x1c);
              local_a8 = local_40;
              local_b0 = *(uint *)(pcVar6 + 0x20);
              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);
              local_ac = local_44;
              pcVar17 = local_b4 + -(int)local_44;
              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);
              local_bc = local_48;
              local_b8 = 0;
              if (uVar1 == 0) {
                pcVar11 = local_b4;
                if (uVar15 < (pcVar17 < local_48)) {
LAB_0002cb5e:
                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));
                  uVar31 = (*(code *)*local_78)();
                  uVar15 = (uint)(uVar31 >> 0x20);
                  local_a4 = (uint *)uVar31;
                  puVar10 = &UNK_00050218 + unaff_EBP;
                  if ((uVar31 & 0x100000000) != 0) {
                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);
                  }
                  uVar18 = uVar15 >> 0x10;
                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);
                  if (uVar18 == 1) {
                    local_64 = 0;
                    pcVar17 = local_48 + (int)local_4c;
                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {
                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;
                    }
                    pcVar11 = local_bc + 8;
                    while (pcVar11 < pcVar17) {
                      local_bc = pcVar6;
                      pcVar11 = (code *)FUN_0004c6d0();
                      pcVar6 = local_bc;
                    }
                  }
                  else {
                    pcVar7 = (char *)dcgettext();
                    printf(pcVar7);
                  }
                  goto LAB_0002cbe7;
                }
              }
              else {
                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);
                uVar18 = *(uint *)(iVar12 + 0x10);
                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <
                    (uint)(pcVar17 + uVar18 < local_48)) {
                  pcVar11 = local_b4 + uVar18;
                  goto LAB_0002cb5e;
                }
              }
              dcgettext();
              warn();
            }
LAB_0002cbe7:
            pcVar6 = pcVar6 + 0x24;
          } while (pcVar6 < local_54 + local_50 * 0x24);
        }
        free(local_2c);
      }
    }
  }
  else {
    puVar14 = *(uint **)(param_1 + 0x60);
    if (puVar14 != (uint *)0x0) {
LAB_0002bfdd:
      local_b0 = local_a4[9];
      local_b4 = (code *)local_a4[8];
      puVar13 = puVar14 + iVar12 * 0xe;
      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {
        local_c4 = (code *)puVar13;
        if (*puVar14 == 1) {
          uVar15 = puVar14[4];
          uVar18 = puVar14[5];
          uVar21 = local_a4[5];
          uVar3 = local_a4[4];
          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {
            local_bc = local_b4 + uVar3;
            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);
            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);
            if (local_b8 <= uVar21 &&
                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;
          }
        }
      }
      goto LAB_0002c050;
    }
    iVar12 = FUN_000269d0();
    if (iVar12 != 0) {
      puVar14 = *(uint **)(param_1 + 0x60);
      iVar12 = *(int *)(param_1 + 0x4c);
      goto LAB_0002bfdd;
    }
  }
  if (local_54 != (code *)0x0) {
    free(local_54);
  }
LAB_0002c236:
  if (local_4c != (void *)0x0) {
    free(local_4c);
  }
  local_54 = (code *)0x0;
  local_4c = (void *)0x0;
joined_r0x0002c26e:
  local_90 = local_90 + -1;
  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;
  piVar8 = *(int **)(param_1 + 0x54);
  goto LAB_0002bbd0;
}


PUSH EBP
XOR EAX,EAX
MOV ECX,0xe
CALL 0x0004ab89
ADD EBP,0x885c3
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xbc
LEA EDX,[ESP + 0x78]
MOV dword ptr [ESP + 0x5c],0x1
MOV EDI,EDX
STOSD.REP ES:EDI
MOV EAX,dword ptr [ESP + 0xd0]
MOV EDX,dword ptr [EAX + 0x54]
MOV ESI,dword ptr [EAX + 0x5c]
TEST EDX,EDX
JZ 0x0002cec1
LEA EAX,[EBP + 0xfffc4162]
MOV dword ptr [ESP + 0x8],0x0
XOR EDI,EDI
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBP + 0xfffcf208]
MOV dword ptr [ESP + 0x28],EAX
JMP 0x0002bab7
CMP EAX,0x70000001
SETZ AL
MOVZX EAX,AL
ADD dword ptr [ESP + 0x8],EAX
ADD EDI,0x1
ADD ESI,0x48
MOV EAX,EDX
CMP EDX,EDI
JBE 0x0002bbaa
MOV EAX,dword ptr [ESI + 0x4]
CMP EAX,0x2
JNZ 0x0002ba98
CMP dword ptr [ESI + 0x28],EDX
JNC 0x0002baa7
MOV EBX,dword ptr [EBP + 0x2324]
LEA ECX,[ESP + 0x9c]
MOV EDX,ESI
MOV EAX,dword ptr [ESP + 0xd0]
TEST EBX,EBX
JZ 0x0002cea7
CALL 0x000222e0
MOV dword ptr [ESP + 0x98],EAX
MOV EAX,dword ptr [ESI + 0x28]
LEA EDX,[EAX + EAX*0x8]
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x5c]
LEA EAX,[EAX + EDX*0x8]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0xa8]
TEST EAX,EAX
JZ 0x0002bb42
SUB ESP,0x4
MOV EBX,EBP
PUSH 0x5
PUSH dword ptr [ESP + 0x30]
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066870
POP EAX
PUSH dword ptr [ESP + 0xb4]
CALL 0x000130a0
ADD ESP,0x10
MOV dword ptr [ESP + 0x5c],0x0
SUB ESP,0x4
MOV EBX,EBP
PUSH 0x5
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
CALL 0x000130f0
MOV EBX,dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [EBX + 0x18]
MOV dword ptr [ESP],EAX
XOR EAX,EAX
PUSH dword ptr [EBX + 0x24]
PUSH dword ptr [EBX + 0x20]
PUSH 0x0
PUSH 0x1
MOV EDX,dword ptr [ESP + 0xf0]
CALL 0x0001bf90
XOR EDX,EDX
MOV dword ptr [ESP + 0xc8],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0002bb89
MOV EDX,dword ptr [EBX + 0x20]
MOV EAX,dword ptr [ESP + 0xd0]
MOV dword ptr [ESP + 0xac],EDX
ADD EDI,0x1
ADD ESI,0x48
MOV EDX,dword ptr [EAX + 0x54]
MOV EAX,EDX
CMP EDX,EDI
JA 0x0002bab7
MOV EDX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x38],0x0
LEA ECX,[EDX + -0x1]
MOV dword ptr [ESP + 0x3c],ECX
LEA ECX,[EBP + 0x5dd8]
MOV dword ptr [ESP + 0x54],ECX
TEST EDX,EDX
JZ 0x0002cec1
NOP
MOV ECX,dword ptr [ESP + 0xd0]
MOV ESI,dword ptr [ESP + 0x38]
MOV EDX,dword ptr [ECX + 0x5c]
LEA EBX,[ESI + ESI*0x8]
LEA EDI,[EDX + EBX*0x8]
MOV ECX,EDX
MOV dword ptr [ESP + 0x28],EDI
CMP ESI,EAX
JNC 0x0002bc1b
CMP dword ptr [EDI + 0x4],0x70000001
JZ 0x0002ce7a
MOV EBX,dword ptr [ESP + 0x38]
MOV ESI,dword ptr [ESP + 0x28]
JMP 0x0002bc11
CMP dword ptr [ESI + 0x4],0x70000001
JZ 0x0002bc40
ADD EBX,0x1
ADD ESI,0x48
CMP EBX,EAX
JNZ 0x0002bc08
LEA EAX,[EBP + 0xfffda45c]
MOV EBX,EBP
PUSH EAX
LEA EAX,[EBP + 0xfffc2a91]
PUSH 0x1df7
PUSH EAX
LEA EAX,[EBP + 0xfffc495d]
PUSH EAX
CALL 0x00013420
MOV dword ptr [ESP + 0x38],EBX
MOV dword ptr [ESP + 0x28],ESI
MOV dword ptr [ESP + 0xc],EBX
MOV EAX,dword ptr [ESP + 0x28]
ADD dword ptr [ESP + 0x38],0x1
TEST byte ptr [EAX + 0x9],0x2
JZ 0x0002bd00
MOV EAX,dword ptr [EBP + 0x2314]
TEST EAX,EAX
JZ 0x0002bc78
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + EDX*0x4]
TEST EAX,EAX
JNZ 0x0002c840
SUB ESP,0x4
LEA EAX,[EBP + 0xfffcf33c]
MOV EBX,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x64]
TEST EAX,EAX
JZ 0x0002ce38
MOV EAX,dword ptr [ESP + 0xd0]
MOV ECX,dword ptr [ESP + 0x28]
MOV EBX,EBP
LEA EDX,[EAX + 0x68]
ADD EAX,0x64
CALL 0x00022190
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBP + 0xfffc48ed]
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
SUB dword ptr [ESP + 0x3c],0x1
MOV EAX,dword ptr [ESP + 0x3c]
CMP EAX,-0x1
JZ 0x0002c274
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x54]
JMP 0x0002bbd0
MOV EAX,dword ptr [ESP + 0xd0]
MOV EBX,dword ptr [EAX + 0x64]
TEST EBX,EBX
JZ 0x0002ce57
MOV EAX,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX]
CMP EAX,dword ptr [ECX + 0x68]
JNC 0x0002c920
LEA ESI,[EBX + EAX*0x1]
MOV ECX,0x16
LEA EDI,[EBP + 0xfffc48b0]
MOV dword ptr [ESP + 0x8],ESI
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0002c5fe
MOV EAX,dword ptr [ESP + 0x8]
ADD EAX,0x16
MOV dword ptr [ESP + 0x8],EDX
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x54]
TEST EAX,EAX
JZ 0x0002bc78
LEA EAX,[EBP + 0xfffc48c7]
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBP + 0xfffc2aee]
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBP + 0xfffc3164]
MOV dword ptr [ESP + 0x30],EAX
JMP 0x0002bdee
ADD EAX,EDX
MOV EDI,dword ptr [ESP + 0x10]
MOV ECX,0x17
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x0002bdce
SUB ESP,0x8
ADD EAX,0x17
MOV EBX,EBP
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x00013050
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002be90
MOV EAX,dword ptr [ESP + 0xd0]
ADD dword ptr [ESP + 0xc],0x1
MOV EDX,dword ptr [ESP + 0xc]
ADD dword ptr [ESP + 0x8],0x48
MOV EAX,dword ptr [EAX + 0x54]
CMP EAX,EDX
JBE 0x0002be9a
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x0002c2b8
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x64]
TEST EAX,EAX
JZ 0x0002c310
MOV ESI,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESI]
MOV ESI,dword ptr [ESP + 0xd0]
CMP EDX,dword ptr [ESI + 0x68]
JC 0x0002bd98
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
MOV EBX,EBP
CALL 0x000130f0
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x10]
MOV ECX,0x17
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0002bdce
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x64]
TEST EAX,EAX
JZ 0x0002c5d0
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xd0]
MOV EDX,dword ptr [EDX]
CMP dword ptr [ECX + 0x68],EDX
JA 0x0002cf1c
SUB ESP,0x4
MOV EBX,EBP
PUSH 0x5
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
JMP 0x0002bdb1
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x54]
CMP dword ptr [ESP + 0xc],EAX
JZ 0x0002bc78
MOV EDI,dword ptr [ESP + 0x8]
SUB ESP,0x4
MOV EBX,EBP
MOV EAX,dword ptr [EDI + 0x10]
MOV EDX,dword ptr [EDI + 0x14]
MOV dword ptr [ESP + 0x8c],EAX
LEA EAX,[EBP + 0xfffc48f2]
MOV dword ptr [ESP + 0x90],EDX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV ECX,dword ptr [EDI + 0x18]
MOV dword ptr [ESP],EAX
XOR EAX,EAX
PUSH dword ptr [EDI + 0x24]
PUSH dword ptr [EDI + 0x20]
PUSH 0x0
PUSH 0x1
MOV EDX,dword ptr [ESP + 0xf0]
CALL 0x0001bf90
XOR EDX,EDX
MOV dword ptr [ESP + 0xa0],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0002bf02
MOV EDX,dword ptr [EDI + 0x20]
MOV dword ptr [ESP + 0x84],EDX
LEA EAX,[EBP + 0xfffc48fe]
SUB ESP,0x4
MOV EBX,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xd0]
MOV ESI,dword ptr [EAX + 0x64]
TEST ESI,ESI
JZ 0x0002c820
MOV EAX,dword ptr [ESP + 0xd0]
MOV ECX,dword ptr [ESP + 0x28]
LEA EDX,[EAX + 0x68]
ADD EAX,0x64
CALL 0x00022190
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBP + 0xfffc48ed]
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
LEA EAX,[EBP + 0x5da8]
XOR EDX,EDX
MOV EBX,EBP
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EAX]
PUSH EDX
LEA EAX,[EAX + EAX*0x2]
PUSH EAX
MOV ESI,dword ptr [ESP + 0x30]
PUSH dword ptr [ESI + 0x24]
PUSH dword ptr [ESI + 0x20]
CALL 0x0006b5b0
ADD ESP,0xc
MOV ESI,dword ptr [ESI + 0x18]
MOV EDI,EAX
LEA EAX,[EBP + 0xfffcfd5c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00013060
MOV EAX,dword ptr [ESP + 0xe0]
MOV dword ptr [ESP + 0x8c],0x0
ADD ESP,0x10
MOV EDI,dword ptr [EAX + 0x4c]
TEST EDI,EDI
JZ 0x0002c5b8
MOV EAX,dword ptr [ESP + 0xd0]
MOV ESI,dword ptr [EAX + 0x60]
TEST ESI,ESI
JZ 0x0002c800
MOV EAX,dword ptr [ESP + 0x28]
IMUL EDI,EDI,0x38
MOV EDX,dword ptr [EAX + 0x24]
MOV EAX,dword ptr [EAX + 0x20]
ADD EDI,ESI
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x1c],EDX
CMP ESI,EDI
JNC 0x0002c050
MOV dword ptr [ESP + 0x8],EDI
MOV EAX,ESI
NOP
CMP dword ptr [EAX],0x1
JNZ 0x0002c047
MOV ESI,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [EAX + 0x10]
MOV EBX,dword ptr [EAX + 0x14]
MOV EDI,dword ptr [ESI + 0x14]
MOV ESI,dword ptr [ESI + 0x10]
MOV EDX,EDI
CMP ESI,ECX
SBB EDX,EBX
JC 0x0002c047
ADD ESI,dword ptr [ESP + 0x18]
ADC EDI,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x10],ESI
MOV ESI,ECX
ADD ESI,dword ptr [EAX + 0x28]
MOV dword ptr [ESP + 0x14],EDI
MOV EDI,EBX
ADC EDI,dword ptr [EAX + 0x2c]
MOV EDX,EDI
CMP ESI,dword ptr [ESP + 0x10]
SBB EDX,dword ptr [ESP + 0x14]
JNC 0x0002ce67
ADD EAX,0x38
CMP EAX,dword ptr [ESP + 0x8]
JC 0x0002c000
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc490f]
MOV EBX,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV ECX,dword ptr [ESP + 0x38]
MOV EBX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x5c],0x0
MOV dword ptr [ESP + 0x58],EBX
MOV ECX,dword ptr [ECX + 0x18]
MOV dword ptr [ESP],EAX
XOR EAX,EAX
PUSH dword ptr [ESP + 0x5c]
PUSH dword ptr [ESP + 0x5c]
PUSH 0x0
PUSH 0x1
MOV EDX,dword ptr [ESP + 0xf0]
CALL 0x0001bf90
ADD ESP,0x20
MOV dword ptr [ESP + 0x10],EAX
TEST EAX,EAX
JZ 0x0002c220
MOV EDI,dword ptr [ESP + 0xc]
XOR EDX,EDX
MOV dword ptr [ESP + 0x18],EBX
SUB ESP,0x8
MOV EAX,dword ptr [EDI]
LEA ECX,[EAX + EAX*0x2]
MOV EAX,EBX
MOV EBX,EBP
DIV ECX
MOV dword ptr [ESP + 0x84],EAX
PUSH 0x24
PUSH EAX
CALL 0x0005db00
MOV EDI,dword ptr [EDI]
MOV EBX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x88],EAX
MOV ESI,EAX
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
LEA EAX,[EDI + EDI*0x2]
LEA ECX,[EBP + 0x5dd8]
SUB EBX,EAX
MOV EAX,EBX
MOV dword ptr [ESP + 0x8],EDX
ADD EAX,EDX
MOV dword ptr [ESP + 0x20],ECX
JC 0x0002c1a0
LEA ESI,[ESI]
XOR EAX,EAX
SUB ESP,0x8
MOV word ptr [ESI],AX
XOR EAX,EAX
MOV word ptr [ESI + 0xc],AX
XOR EAX,EAX
MOV word ptr [ESI + 0x18],AX
PUSH EDI
MOV EBX,dword ptr [ESP + 0x14]
PUSH EBX
MOV EDI,dword ptr [ESP + 0x30]
CALL dword ptr [EDI]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESI + 0x8],EDX
POP EDX
MOV EAX,dword ptr [EAX]
POP ECX
ADD EBX,EAX
PUSH EAX
PUSH EBX
CALL dword ptr [EDI]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESI + 0x14],EDX
POP EDX
MOV EAX,dword ptr [EAX]
POP ECX
ADD EBX,EAX
PUSH EAX
PUSH EBX
CALL dword ptr [EDI]
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDI,dword ptr [ECX]
LEA ECX,[EBX + EDI*0x1]
MOV EBX,dword ptr [ESP + 0xa4]
MOV dword ptr [ESP + 0x18],ECX
MOV ECX,dword ptr [ESP + 0xa0]
ADD dword ptr [ESI + 0x4],ECX
ADC dword ptr [ESI + 0x8],EBX
ADD dword ptr [ESI + 0x10],ECX
ADC dword ptr [ESI + 0x14],EBX
ADD EAX,ECX
ADC EDX,EBX
MOV dword ptr [ESI + 0x1c],EAX
LEA EAX,[EDI + EDI*0x2]
ADD ESI,0x24
MOV dword ptr [ESI + -0x4],EDX
MOV EDX,dword ptr [ESP + 0x28]
SUB EDX,EAX
MOV EAX,dword ptr [ESP + 0x20]
ADD ESP,0x10
ADD EAX,EDX
CMP dword ptr [ESP + 0x8],EAX
JBE 0x0002c108
SUB ESP,0xc
MOV EBX,EBP
PUSH dword ptr [ESP + 0x1c]
CALL 0x000130a0
MOV EAX,dword ptr [ESP + 0xe0]
LEA EBX,[EBP + 0xfffc491c]
MOV EDX,dword ptr [EAX + 0x5c]
MOV EAX,dword ptr [EAX + 0x54]
LEA ECX,[EAX + EAX*0x8]
MOV dword ptr [ESP + 0x18],EDX
ADD ESP,0x10
LEA ECX,[EDX + ECX*0x8]
MOV dword ptr [ESP + 0x40],EBX
CMP EDX,ECX
JNC 0x0002c214
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EBX,dword ptr [ESP + 0x8]
CMP dword ptr [EBX + 0x4],0x4
JNZ 0x0002c201
MOV ECX,dword ptr [EBX + 0x2c]
CMP ECX,EAX
JNC 0x0002c201
LEA ECX,[ECX + ECX*0x8]
LEA ECX,[EDX + ECX*0x8]
CMP dword ptr [ESP + 0x28],ECX
JZ 0x0002c320
ADD dword ptr [ESP + 0x8],0x48
LEA ECX,[EAX + EAX*0x8]
MOV EDI,dword ptr [ESP + 0x8]
LEA ECX,[EDX + ECX*0x8]
CMP EDI,ECX
JC 0x0002c1e0
MOV EAX,dword ptr [ESP + 0x7c]
TEST EAX,EAX
JNZ 0x0002ca28
MOV EAX,dword ptr [ESP + 0x78]
TEST EAX,EAX
JZ 0x0002c236
SUB ESP,0xc
MOV EBX,EBP
PUSH EAX
CALL 0x000130a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x80]
TEST EAX,EAX
JZ 0x0002c24f
SUB ESP,0xc
MOV EBX,EBP
PUSH EAX
CALL 0x000130a0
ADD ESP,0x10
SUB dword ptr [ESP + 0x3c],0x1
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x78],0x0
MOV dword ptr [ESP + 0x80],0x0
CMP EAX,-0x1
JNZ 0x0002bce7
MOV EAX,dword ptr [ESP + 0x98]
TEST EAX,EAX
JZ 0x0002c28d
SUB ESP,0xc
MOV EBX,EBP
PUSH EAX
CALL 0x000130a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xa8]
TEST EAX,EAX
JZ 0x0002c2a6
SUB ESP,0xc
MOV EBX,EBP
PUSH EAX
CALL 0x000130a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x5c]
ADD ESP,0xbc
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EDX,[EBP + 0xfffc315d]
MOV EBX,EBP
PUSH 0x5
PUSH EDX
MOV dword ptr [ESP + 0x38],EDX
PUSH 0x0
CALL 0x000130f0
MOV EDI,dword ptr [ESP + 0x20]
MOV ECX,0x17
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x2c]
TEST AL,AL
JNZ 0x0002bdce
SUB ESP,0x4
PUSH 0x5
PUSH EDX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
JMP 0x0002bdb1
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x38]
JMP 0x0002be2b
SUB ESP,0x8
MOV ECX,dword ptr [EBX + 0x20]
MOV EDX,dword ptr [EBX + 0x18]
LEA EAX,[ESP + 0x74]
PUSH EAX
LEA EAX,[ESP + 0x7c]
PUSH EAX
MOV EAX,dword ptr [ESP + 0xe0]
CALL 0x0001e360
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002cee6
MOV EAX,dword ptr [ESP + 0x6c]
MOV EDX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x2c],EAX
LEA EAX,[EAX + EAX*0x2]
LEA EAX,[EDX + EAX*0x8]
MOV dword ptr [ESP + 0x18],EDX
MOV dword ptr [ESP + 0x10],EDX
CMP EDX,EAX
JNC 0x0002c590
MOV EAX,dword ptr [ESP + 0xd0]
ADD EAX,0x42
MOV dword ptr [ESP + 0x44],EAX
LEA EAX,[EBP + 0xfffcf2bc]
MOV dword ptr [ESP + 0x50],EAX
JMP 0x0002c497
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,ESI
MOV ECX,EDI
CALL 0x00021e40
MOV dword ptr [ESP + 0x30],EAX
CALL 0x00015c60
MOV EDX,EAX
IMUL EAX,EDI,0x1c
ADD EAX,EBX
MOV dword ptr [ESP + 0x20],EAX
TEST EDX,EDX
JZ 0x0002c4e0
MOV EDI,dword ptr [ESP + 0x40]
MOV ECX,0xd
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0002c520
MOV EAX,dword ptr [ESP + 0x10]
XOR EDX,EDX
MOV ECX,dword ptr [EAX]
MOV EBX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x34],EBX
MOV ESI,dword ptr [EAX]
MOV dword ptr [ESP + 0x30],ECX
PUSH EDX
LEA EAX,[ESI + ESI*0x2]
PUSH EAX
PUSH EBX
MOV EBX,EBP
PUSH ECX
CALL 0x0006b5b0
ADD ESP,0x10
MOV EDI,EAX
CMP EAX,dword ptr [ESP + 0x7c]
JNC 0x0002c570
XOR EDX,EDX
PUSH EDX
PUSH ESI
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
CALL 0x0006b5b0
ADD ESP,0x10
PUSH 0x0
PUSH 0x3
PUSH EDX
PUSH EAX
CALL 0x0006b6c0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x78]
LEA EBX,[EDI + EDI*0x8]
LEA ECX,[ECX + EBX*0x4]
MOV EBX,dword ptr [ESP + 0x20]
MOV EDI,dword ptr [EBX + 0x18]
MOV dword ptr [ESP + 0x20],EDI
MOV EDI,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [EDI + 0x10]
MOV EDI,dword ptr [EDI + 0x14]
ADD ESI,dword ptr [EBX]
ADC EDI,dword ptr [EBX + 0x4]
MOV EBX,EAX
XOR EBX,0x1
OR EBX,EDX
JZ 0x0002c548
XOR EAX,0x2
OR EDX,EAX
MOVZX EAX,word ptr [ESP + 0x20]
JZ 0x0002c560
MOV word ptr [ECX],AX
MOV dword ptr [ECX + 0x4],ESI
MOV dword ptr [ECX + 0x8],EDI
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDI,dword ptr [ESP + 0x18]
ADD dword ptr [ESP + 0x10],0x18
MOV ESI,dword ptr [ESP + 0x10]
LEA EAX,[EAX + EAX*0x2]
LEA EAX,[EDI + EAX*0x8]
CMP ESI,EAX
JNC 0x0002c590
MOV EAX,dword ptr [ESP + 0x10]
MOV EBX,dword ptr [ESP + 0x98]
MOV EDX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
MOV ESI,EAX
MOV EAX,dword ptr [EBP + 0x2324]
MOV EDI,EDX
TEST EAX,EAX
JZ 0x0002c390
MOV EAX,ESI
SHRD ESI,EDI,0x8
IMUL ESI,ESI,0x1c
MOVZX EAX,AL
MOV dword ptr [ESP + 0x30],EAX
CALL 0x00015c60
MOV EDX,EAX
LEA EAX,[EBX + ESI*0x1]
MOV dword ptr [ESP + 0x20],EAX
TEST EDX,EDX
JNZ 0x0002c3b9
SUB ESP,0x4
LEA EAX,[EBP + 0xfffcf268]
MOV EBX,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x2c],EAX
JMP 0x0002c478
MOV dword ptr [ESP + 0x18],EDX
LEA EAX,[EBP + 0xfffcf290]
SUB ESP,0x4
MOV EBX,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ESI
POP EDI
MOV EDX,dword ptr [ESP + 0x20]
PUSH EDX
JMP 0x0002c4fb
MOVZX EAX,word ptr [ESP + 0x20]
MOV dword ptr [ECX + 0x10],ESI
MOV dword ptr [ECX + 0x14],EDI
MOV word ptr [ECX + 0xc],AX
JMP 0x0002c478
MOV word ptr [ECX + 0x18],AX
MOV dword ptr [ECX + 0x1c],ESI
MOV dword ptr [ECX + 0x20],EDI
JMP 0x0002c478
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x58]
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH EDI
JMP 0x0002c4fb
SUB ESP,0xc
MOV EBX,EBP
PUSH dword ptr [ESP + 0x24]
CALL 0x000130a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xd0]
MOV EDX,dword ptr [EAX + 0x5c]
MOV EAX,dword ptr [EAX + 0x54]
JMP 0x0002c201
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [EAX + 0x24]
MOV EAX,dword ptr [EAX + 0x20]
MOV dword ptr [ESP + 0x1c],EDX
MOV dword ptr [ESP + 0x18],EAX
JMP 0x0002c050
SUB ESP,0x4
MOV EBX,EBP
PUSH 0x5
PUSH dword ptr [ESP + 0x38]
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
JMP 0x0002bdb1
TEST EBX,EBX
JZ 0x0002ce87
MOV EAX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [ESP + 0xd0]
CMP EAX,dword ptr [EDX + 0x68]
JNC 0x0002c9a3
ADD EAX,EBX
MOV ECX,0xd
LEA EDI,[EBP + 0xfffc48df]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x0002ca17
LEA EAX,[EBP + 0xfffc7c55]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x5c]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x54]
TEST EAX,EAX
JZ 0x0002bc78
LEA EAX,[EBP + 0xfffc489d]
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBP + 0xfffc2aee]
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBP + 0xfffc3164]
MOV dword ptr [ESP + 0x30],EAX
JMP 0x0002c6d6
ADD EAX,EDX
MOV EDI,dword ptr [ESP + 0x10]
MOV ECX,0x12
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x0002c6b6
SUB ESP,0x8
ADD EAX,0x12
MOV EBX,EBP
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x00013050
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002be90
MOV EAX,dword ptr [ESP + 0xd0]
ADD dword ptr [ESP + 0xc],0x1
MOV EDX,dword ptr [ESP + 0xc]
ADD dword ptr [ESP + 0x8],0x48
MOV EAX,dword ptr [EAX + 0x54]
CMP EAX,EDX
JBE 0x0002be9a
MOV EDI,dword ptr [ESP + 0x8]
TEST EDI,EDI
JZ 0x0002c780
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x64]
TEST EAX,EAX
JZ 0x0002c7d0
MOV EDI,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xd0]
MOV EDX,dword ptr [EDI]
CMP EDX,dword ptr [ECX + 0x68]
JC 0x0002c680
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
MOV EBX,EBP
CALL 0x000130f0
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x10]
MOV ECX,0x12
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0002c6b6
MOV EAX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX + 0x64]
TEST EAX,EAX
JZ 0x0002c7e0
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xd0]
MOV EDX,dword ptr [EDX]
CMP EDX,dword ptr [ECX + 0x68]
JC 0x0002cf31
SUB ESP,0x4
MOV EBX,EBP
PUSH 0x5
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
JMP 0x0002c699
SUB ESP,0x4
LEA EDX,[EBP + 0xfffc315d]
MOV EBX,EBP
PUSH 0x5
PUSH EDX
MOV dword ptr [ESP + 0x38],EDX
PUSH 0x0
CALL 0x000130f0
MOV EDI,dword ptr [ESP + 0x20]
MOV ECX,0x12
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x2c]
TEST AL,AL
JNZ 0x0002c6b6
SUB ESP,0x4
PUSH 0x5
PUSH EDX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
JMP 0x0002c699
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x38]
JMP 0x0002c713
SUB ESP,0x4
MOV EBX,EBP
PUSH 0x5
PUSH dword ptr [ESP + 0x38]
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
JMP 0x0002c699
CALL 0x000269d0
TEST EAX,EAX
JZ 0x0002c220
MOV EAX,dword ptr [ESP + 0xd0]
MOV ESI,dword ptr [EAX + 0x60]
MOV EDI,dword ptr [EAX + 0x4c]
JMP 0x0002bfdd
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x30]
PUSH dword ptr [EAX]
LEA EAX,[EBP + 0xfffdf84f]
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
JMP 0x0002bf64
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x0002bc78
LEA EAX,[EBP + 0xfffc489d]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBP + 0xfffc2aee]
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBP + 0xfffc3164]
MOV dword ptr [ESP + 0x2c],EAX
JMP 0x0002c89c
MOV EDI,dword ptr [ESP + 0x10]
MOV ECX,0x13
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0002be90
MOV EDX,dword ptr [EDX]
TEST EDX,EDX
JZ 0x0002bc78
MOV EAX,dword ptr [ESP + 0xd0]
MOV ECX,dword ptr [EAX + 0x5c]
MOV EAX,dword ptr [EDX + 0x4]
LEA EAX,[EAX + EAX*0x8]
LEA EAX,[ECX + EAX*0x8]
MOV dword ptr [ESP + 0x8],EAX
TEST EAX,EAX
JZ 0x0002c8f0
MOV EAX,dword ptr [ESP + 0xd0]
MOV ESI,dword ptr [EAX + 0x64]
TEST ESI,ESI
JZ 0x0002c908
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX]
ADD ESI,EAX
CMP EAX,dword ptr [ECX + 0x68]
JC 0x0002c870
MOV dword ptr [ESP + 0x18],EDX
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
MOV EBX,EBP
CALL 0x000130f0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x18]
MOV ESI,EAX
JMP 0x0002c870
MOV dword ptr [ESP + 0x18],EDX
LEA EAX,[EBP + 0xfffc315d]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
JMP 0x0002c8dc
MOV dword ptr [ESP + 0x18],EDX
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x34]
JMP 0x0002c8dc
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc2aee]
PUSH 0x5
PUSH EAX
MOV EBX,EBP
LEA EDI,[EBP + 0xfffc48b0]
PUSH 0x0
CALL 0x000130f0
MOV ECX,0x16
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xd0]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
MOV EBX,dword ptr [EDX + 0x64]
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0002c5f0
TEST EBX,EBX
JZ 0x0002ce97
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX]
CMP EAX,dword ptr [EDX + 0x68]
JC 0x0002cf23
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc2aee]
PUSH 0x5
PUSH EAX
MOV EBX,EBP
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xd0]
MOV EDX,dword ptr [EDX + 0x5c]
JMP 0x0002bd4e
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc2aee]
PUSH 0x5
PUSH EAX
MOV EBX,EBP
LEA EDI,[EBP + 0xfffc48df]
PUSH 0x0
CALL 0x000130f0
MOV ECX,0xd
ADD ESP,0x10
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0002c62d
MOV EAX,dword ptr [ESP + 0xd0]
MOV EBX,dword ptr [EAX + 0x64]
TEST EBX,EBX
JZ 0x0002ceb1
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0xd0]
MOV EAX,dword ptr [EAX]
CMP dword ptr [EDX + 0x68],EAX
JA 0x0002cf15
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc2aee]
PUSH 0x5
PUSH EAX
MOV EBX,EBP
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
ADD EAX,0xd
MOV dword ptr [ESP + 0x18],EAX
JMP 0x0002c637
SUB ESP,0xc
MOV EBX,EBP
IMUL EAX,dword ptr [ESP + 0xa8],0x1c
PUSH EAX
CALL 0x0006b190
MOV ESI,dword ptr [ESP + 0xac]
MOV dword ptr [ESP + 0xb0],EAX
ADD ESP,0x10
TEST ESI,ESI
JZ 0x0002caaf
IMUL ESI,ESI,0x1c
MOV EDX,dword ptr [ESP + 0x98]
LEA EDI,[ESI + EDX*0x1]
XOR ESI,ESI
NOP
MOV ECX,dword ptr [EDX]
MOV EBX,ECX
OR EBX,dword ptr [EDX + 0x4]
JZ 0x0002caa8
MOVZX EBX,byte ptr [EDX + 0x14]
AND EBX,0xf
CMP BL,0x2
JNZ 0x0002caa8
IMUL EBX,ESI,0x1c
ADD ESI,0x1
ADD EBX,EAX
MOV dword ptr [EBX],ECX
MOV ECX,dword ptr [EDX + 0x4]
MOV dword ptr [EBX + 0x4],ECX
MOV ECX,dword ptr [EDX + 0x8]
MOV dword ptr [EBX + 0x8],ECX
MOV ECX,dword ptr [EDX + 0xc]
MOV dword ptr [EBX + 0xc],ECX
MOV ECX,dword ptr [EDX + 0x10]
MOV dword ptr [EBX + 0x10],ECX
MOV ECX,dword ptr [EDX + 0x14]
MOV dword ptr [EBX + 0x14],ECX
MOV ECX,dword ptr [EDX + 0x18]
MOV dword ptr [EBX + 0x18],ECX
LEA ESI,[ESI]
NOP
ADD EDX,0x1c
CMP EDI,EDX
JNZ 0x0002ca60
LEA EDX,[EBP + 0xfff67e00]
MOV dword ptr [ESP + 0xa4],ESI
MOV EBX,EBP
PUSH EDX
PUSH 0x1c
PUSH ESI
PUSH EAX
CALL 0x000133a0
MOV EAX,dword ptr [ESP + 0x8c]
MOV ESI,dword ptr [ESP + 0x88]
ADD ESP,0x10
LEA EAX,[EAX + EAX*0x8]
LEA EAX,[ESI + EAX*0x4]
CMP ESI,EAX
JNC 0x0002ce18
LEA EAX,[ESP + 0x6c]
MOV EDI,ESI
MOV dword ptr [ESP + 0x44],EAX
LEA EAX,[ESP + 0x70]
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [EBP + 0xffffffd8]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBP + 0xfffc492a]
MOV dword ptr [ESP + 0x2c],EAX
LEA EAX,[EBP + 0xfffc4932]
MOV dword ptr [ESP + 0x30],EAX
LEA EAX,[EBP + 0xfffc4937]
MOV dword ptr [ESP + 0x40],EAX
LEA EAX,[EBP + 0xfffc492d]
MOV dword ptr [ESP + 0x58],EAX
JMP 0x0002cc00
MOV EBX,dword ptr [ESP + 0xd0]
LEA ECX,[ECX + ECX*0x8]
SHL ECX,0x3
ADD ECX,dword ptr [EBX + 0x5c]
MOV EBX,dword ptr [ECX + 0x14]
MOV ECX,dword ptr [ECX + 0x10]
ADD EAX,ECX
ADC EDX,EBX
CMP EAX,dword ptr [ESP + 0x10]
MOV EAX,EDX
SBB EAX,dword ptr [ESP + 0x14]
JNC 0x0002cd55
ADD ECX,dword ptr [ESP + 0x18]
SUB ECX,dword ptr [ESP + 0x20]
SUB ESP,0x8
LEA EAX,[ESI + ECX*0x1]
MOV dword ptr [ESP + 0x18],EAX
PUSH 0x8
PUSH EAX
MOV EAX,dword ptr [ESP + 0x64]
CALL dword ptr [EAX]
MOV ECX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x38],EAX
MOV EBX,dword ptr [ECX]
POP ECX
LEA ECX,[EBP + 0xfffc4889]
POP ESI
LEA ESI,[EBP + 0xfffc4893]
IMUL EBX,EAX
TEST DL,0x2
LEA EAX,[EBP + 0xfffc7c55]
CMOVZ ECX,EAX
TEST DL,0x1
CMOVNZ EAX,ESI
MOV ESI,EDX
MOVZX EDX,DX
PUSH EBX
SHR ESI,0x10
MOV EBX,EBP
PUSH ECX
PUSH EAX
LEA EAX,[EBP + 0xfffcf310]
PUSH EDX
PUSH ESI
PUSH EAX
CALL 0x00013060
ADD ESP,0x20
CMP ESI,0x1
JZ 0x0002cd90
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc494a]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x7c]
ADD EDI,0x24
LEA EDX,[EAX + EAX*0x8]
MOV EAX,dword ptr [ESP + 0x78]
LEA EAX,[EAX + EDX*0x4]
CMP EDI,EAX
JNC 0x0002ce18
MOV EAX,dword ptr [ESP + 0xd0]
SUB ESP,0x4
MOV EBX,EBP
MOVZX EAX,word ptr [EAX + 0x42]
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x4c]
PUSH dword ptr [EDI + 0x8]
PUSH dword ptr [EDI + 0x4]
MOVZX EDX,word ptr [EDI]
PUSH EDX
PUSH dword ptr [ESP + 0xc4]
PUSH dword ptr [ESP + 0xc4]
MOV ECX,dword ptr [ESP + 0xc4]
MOV EDX,dword ptr [ESP + 0xc0]
CALL 0x00023b50
ADD ESP,0x20
MOV ESI,dword ptr [ESP + 0x8]
PUSH dword ptr [ESI]
PUSH 0x2
PUSH 0x1
PUSH dword ptr [ESP + 0x38]
CALL 0x00013150
MOV EAX,dword ptr [ESP + 0x7c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002cc85
SUB ESP,0x8
PUSH dword ptr [ESI]
PUSH EAX
CALL 0x00013400
MOV EAX,dword ptr [ESP + 0x80]
ADD ESP,0x10
MOV ECX,EAX
OR ECX,dword ptr [ESP + 0x74]
JNZ 0x0002ce00
MOV ESI,dword ptr [ESP + 0x8]
MOV EBX,EBP
PUSH dword ptr [ESI]
PUSH 0x4
PUSH 0x1
PUSH dword ptr [ESP + 0x3c]
CALL 0x00013150
MOV EDX,dword ptr [EDI + 0x8]
MOV EAX,dword ptr [EDI + 0x4]
MOV ECX,0x4
CALL 0x0001e910
POP EAX
POP EDX
PUSH dword ptr [ESI]
PUSH 0x2d
CALL 0x00013350
MOV EDX,dword ptr [EDI + 0x14]
MOV EAX,dword ptr [EDI + 0x10]
MOV ECX,0x4
CALL 0x0001e910
POP ECX
MOV EAX,dword ptr [EDI + 0x1c]
POP ESI
SUB EAX,dword ptr [ESP + 0x98]
PUSH EAX
PUSH dword ptr [ESP + 0x4c]
CALL 0x00013060
MOV ESI,dword ptr [ESP + 0x90]
ADD ESP,0x10
TEST ESI,ESI
JZ 0x0002cbe7
MOVZX ECX,word ptr [EDI + 0x18]
MOV EAX,dword ptr [EDI + 0x1c]
MOV EBX,dword ptr [ESP + 0x8c]
MOV EDX,dword ptr [EDI + 0x20]
MOV word ptr [ESP + 0x28],CX
MOV ECX,dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x20],ECX
SUB EAX,ECX
MOV ECX,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x1c],EDX
SBB EDX,EBX
MOV dword ptr [ESP + 0x10],ECX
MOVZX ECX,word ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x24],EBX
XOR EBX,EBX
MOV dword ptr [ESP + 0x14],EBX
TEST CX,CX
JNZ 0x0002cb30
MOV ECX,dword ptr [ESP + 0x10]
MOV EBX,dword ptr [ESP + 0x14]
CMP EAX,ECX
MOV EAX,EDX
MOV ECX,dword ptr [ESP + 0x18]
SBB EAX,EBX
JC 0x0002cb5e
SUB ESP,0x4
LEA EAX,[EBP + 0xfffcf2e8]
MOV ESI,EDI
SUB ESI,dword ptr [ESP + 0x7c]
SAR ESI,0x2
PUSH 0x5
MOV EBX,EBP
PUSH EAX
IMUL ESI,ESI,0x38e38e39
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH ESI
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
JMP 0x0002cbe7
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x68],0x0
MOV ECX,dword ptr [ESP + 0x10]
IMUL EAX,dword ptr [EDX]
LEA EDX,[ECX + EAX*0x1 + 0x8]
MOV EAX,dword ptr [ESP + 0x84]
ADD EAX,dword ptr [ESP + 0x80]
CMP EDX,EAX
CMOVC EAX,EDX
MOV ESI,EAX
LEA EAX,[ECX + 0x8]
CMP ESI,EAX
JBE 0x0002cbe7
LEA EDX,[ESP + 0x68]
MOV dword ptr [ESP + 0x10],EDI
XOR ECX,ECX
MOV EDI,EDX
JMP 0x0002cde4
MOV ECX,dword ptr [ESP + 0x68]
PUSH ESI
MOV EBX,EBP
PUSH EDI
PUSH ECX
PUSH EAX
CALL 0x0004c6d0
ADD ESP,0x10
CMP ESI,EAX
JA 0x0002cde0
MOV EDI,dword ptr [ESP + 0x10]
JMP 0x0002cbe7
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x64]
CALL 0x00013060
ADD ESP,0x10
JMP 0x0002cc85
SUB ESP,0xc
MOV EBX,EBP
PUSH dword ptr [ESP + 0xac]
CALL 0x000130a0
ADD ESP,0x10
JMP 0x0002c220
SUB ESP,0x8
MOV EBX,EBP
MOV EAX,dword ptr [ESP + 0x30]
PUSH dword ptr [EAX]
LEA EAX,[EBP + 0xfffdf84f]
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
JMP 0x0002bcd5
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc3164]
PUSH 0x5
JMP 0x0002c92b
MOV dword ptr [ESP + 0x90],ECX
MOV dword ptr [ESP + 0x94],EBX
JMP 0x0002c050
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x0002bc4c
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc3164]
PUSH 0x5
JMP 0x0002c9ae
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc3164]
PUSH 0x5
JMP 0x0002c987
CALL 0x00022830
JMP 0x0002bae7
SUB ESP,0x4
LEA EAX,[EBP + 0xfffc3164]
PUSH 0x5
JMP 0x0002ca0a
SUB ESP,0x4
LEA EAX,[EBP + 0xfffcf238]
MOV EBX,EBP
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
JMP 0x0002c274
SUB ESP,0xc
MOV EBX,EBP
PUSH dword ptr [ESP + 0x84]
CALL 0x000130a0
MOV dword ptr [ESP + 0x88],0x0
MOV dword ptr [ESP + 0x8c],0x0
ADD ESP,0x10
JMP 0x0002c236
ADD EAX,EBX
JMP 0x0002ca17
ADD EAX,EDX
JMP 0x0002bdb1
ADD EAX,EBX
MOV EDX,dword ptr [EDX + 0x5c]
MOV dword ptr [ESP + 0x8],EAX
JMP 0x0002bd4a
ADD EAX,EDX
JMP 0x0002c699
(translation_unit "undefined4 FUN_0002ba30(int param_1)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  code *pcVar6;\n  char *pcVar7;\n  int *piVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int extraout_ECX;\n  int iVar12;\n  uint *puVar13;\n  uint *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte *pbVar16;\n  code *pcVar17;\n  uint uVar18;\n  code **ppcVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  byte *pbVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined8 uVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  undefined1 auStack_cc [8];\n  code *local_c4;\n  int *local_c0;\n  code *local_bc;\n  uint local_b8;\n  code *local_b4;\n  uint local_b0;\n  code *local_ac;\n  uint local_a8;\n  uint *local_a4;\n  char *local_a0;\n  void *local_9c;\n  uint local_98;\n  int *local_94;\n  byte *local_90;\n  code *local_8c;\n  char **local_88;\n  code *local_84;\n  undefined4 local_80;\n  code **local_7c;\n  undefined4 *local_78;\n  char *local_74;\n  undefined4 local_70;\n  undefined4 local_64;\n  char *local_60;\n  code *local_5c;\n  int local_58;\n  code *local_54;\n  uint local_50;\n  void *local_4c;\n  code *local_48;\n  code *local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int *local_34;\n  size_t local_30;\n  void *local_2c;\n  size_t local_28;\n  void *local_24;\n  int local_20;\n  \n  bVar28 = 0;\n  pcVar6 = (code *)FUN_0004ab89();\n  local_70 = 1;\n  ppcVar19 = &local_54;\n  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }\n  piVar8 = *(int **)(param_1 + 0x54);\n  iVar12 = *(int *)(param_1 + 0x5c);\n  if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    /* WARNING: Subroutine does not return */\n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\nLAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }\n  if (local_24 != (void *)0x0) {\n    free(local_24);\n  }\n  return local_70;\nLAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);\nLAB_0002be9a:\n  pcVar6 = local_c4;\n  if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }\n  local_44 = *(code **)((int)local_c4 + 0x10);\n  local_40 = *(uint *)((int)local_c4 + 0x14);\n  dcgettext();\n  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));\n  local_48 = (code *)0x0;\n  if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }\n  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);\n  FUN_0006b5b0();\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  local_50 = 0;\n  iVar12 = *(int *)(param_1 + 0x4c);\n  if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }\n  if (local_54 != (code *)0x0) {\n    free(local_54);\n  }\nLAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }\n  local_54 = (code *)0x0;\n  local_4c = (void *)0x0;\njoined_r0x0002c26e:\n  local_90 = local_90 + -1;\n  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;\n  piVar8 = *(int **)(param_1 + 0x54);\n  goto LAB_0002bbd0;\n}\n\n" (function_definition "undefined4 FUN_0002ba30(int param_1)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  code *pcVar6;\n  char *pcVar7;\n  int *piVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int extraout_ECX;\n  int iVar12;\n  uint *puVar13;\n  uint *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte *pbVar16;\n  code *pcVar17;\n  uint uVar18;\n  code **ppcVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  byte *pbVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined8 uVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  undefined1 auStack_cc [8];\n  code *local_c4;\n  int *local_c0;\n  code *local_bc;\n  uint local_b8;\n  code *local_b4;\n  uint local_b0;\n  code *local_ac;\n  uint local_a8;\n  uint *local_a4;\n  char *local_a0;\n  void *local_9c;\n  uint local_98;\n  int *local_94;\n  byte *local_90;\n  code *local_8c;\n  char **local_88;\n  code *local_84;\n  undefined4 local_80;\n  code **local_7c;\n  undefined4 *local_78;\n  char *local_74;\n  undefined4 local_70;\n  undefined4 local_64;\n  char *local_60;\n  code *local_5c;\n  int local_58;\n  code *local_54;\n  uint local_50;\n  void *local_4c;\n  code *local_48;\n  code *local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int *local_34;\n  size_t local_30;\n  void *local_2c;\n  size_t local_28;\n  void *local_24;\n  int local_20;\n  \n  bVar28 = 0;\n  pcVar6 = (code *)FUN_0004ab89();\n  local_70 = 1;\n  ppcVar19 = &local_54;\n  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }\n  piVar8 = *(int **)(param_1 + 0x54);\n  iVar12 = *(int *)(param_1 + 0x5c);\n  if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    /* WARNING: Subroutine does not return */\n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\nLAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }\n  if (local_24 != (void *)0x0) {\n    free(local_24);\n  }\n  return local_70;\nLAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);\nLAB_0002be9a:\n  pcVar6 = local_c4;\n  if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }\n  local_44 = *(code **)((int)local_c4 + 0x10);\n  local_40 = *(uint *)((int)local_c4 + 0x14);\n  dcgettext();\n  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));\n  local_48 = (code *)0x0;\n  if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }\n  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);\n  FUN_0006b5b0();\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  local_50 = 0;\n  iVar12 = *(int *)(param_1 + 0x4c);\n  if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }\n  if (local_54 != (code *)0x0) {\n    free(local_54);\n  }\nLAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }\n  local_54 = (code *)0x0;\n  local_4c = (void *)0x0;\njoined_r0x0002c26e:\n  local_90 = local_90 + -1;\n  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;\n  piVar8 = *(int **)(param_1 + 0x54);\n  goto LAB_0002bbd0;\n}" type_identifier (function_declarator "FUN_0002ba30(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  code *pcVar6;\n  char *pcVar7;\n  int *piVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int extraout_ECX;\n  int iVar12;\n  uint *puVar13;\n  uint *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte *pbVar16;\n  code *pcVar17;\n  uint uVar18;\n  code **ppcVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  byte *pbVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined8 uVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  undefined1 auStack_cc [8];\n  code *local_c4;\n  int *local_c0;\n  code *local_bc;\n  uint local_b8;\n  code *local_b4;\n  uint local_b0;\n  code *local_ac;\n  uint local_a8;\n  uint *local_a4;\n  char *local_a0;\n  void *local_9c;\n  uint local_98;\n  int *local_94;\n  byte *local_90;\n  code *local_8c;\n  char **local_88;\n  code *local_84;\n  undefined4 local_80;\n  code **local_7c;\n  undefined4 *local_78;\n  char *local_74;\n  undefined4 local_70;\n  undefined4 local_64;\n  char *local_60;\n  code *local_5c;\n  int local_58;\n  code *local_54;\n  uint local_50;\n  void *local_4c;\n  code *local_48;\n  code *local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int *local_34;\n  size_t local_30;\n  void *local_2c;\n  size_t local_28;\n  void *local_24;\n  int local_20;\n  \n  bVar28 = 0;\n  pcVar6 = (code *)FUN_0004ab89();\n  local_70 = 1;\n  ppcVar19 = &local_54;\n  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }\n  piVar8 = *(int **)(param_1 + 0x54);\n  iVar12 = *(int *)(param_1 + 0x5c);\n  if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    /* WARNING: Subroutine does not return */\n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\nLAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }\n  if (local_24 != (void *)0x0) {\n    free(local_24);\n  }\n  return local_70;\nLAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);\nLAB_0002be9a:\n  pcVar6 = local_c4;\n  if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }\n  local_44 = *(code **)((int)local_c4 + 0x10);\n  local_40 = *(uint *)((int)local_c4 + 0x14);\n  dcgettext();\n  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));\n  local_48 = (code *)0x0;\n  if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }\n  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);\n  FUN_0006b5b0();\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  local_50 = 0;\n  iVar12 = *(int *)(param_1 + 0x4c);\n  if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }\n  if (local_54 != (code *)0x0) {\n    free(local_54);\n  }\nLAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }\n  local_54 = (code *)0x0;\n  local_4c = (void *)0x0;\njoined_r0x0002c26e:\n  local_90 = local_90 + -1;\n  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;\n  piVar8 = *(int **)(param_1 + 0x54);\n  goto LAB_0002bbd0;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "code **ppcVar19;" type_identifier (pointer_declarator "**ppcVar19" * (pointer_declarator "*ppcVar19" * identifier)) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "undefined1 uVar26;" type_identifier identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "byte bVar28;" type_identifier identifier ;) (declaration "undefined8 uVar29;" type_identifier identifier ;) (declaration "longlong lVar30;" type_identifier identifier ;) (declaration "ulonglong uVar31;" type_identifier identifier ;) (declaration "undefined1 auStack_cc [8];" type_identifier (array_declarator "auStack_cc [8]" identifier [ number_literal ]) ;) (declaration "code *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "int *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "code *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "code *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "code *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "uint *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "char *local_a0;" primitive_type (pointer_declarator "*local_a0" * identifier) ;) (declaration "void *local_9c;" primitive_type (pointer_declarator "*local_9c" * identifier) ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "int *local_94;" primitive_type (pointer_declarator "*local_94" * identifier) ;) (declaration "byte *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "code *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "char **local_88;" primitive_type (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier)) ;) (declaration "code *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "undefined4 local_80;" type_identifier identifier ;) (declaration "code **local_7c;" type_identifier (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier)) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "char *local_74;" primitive_type (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "char *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "code *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "code *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "void *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "code *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "size_t local_30;" primitive_type identifier ;) (declaration "void *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "size_t local_28;" primitive_type identifier ;) (declaration "void *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar28 = 0;" (assignment_expression "bVar28 = 0" identifier = number_literal) ;) (expression_statement "pcVar6 = (code *)FUN_0004ab89();" (assignment_expression "pcVar6 = (code *)FUN_0004ab89()" identifier = (cast_expression "(code *)FUN_0004ab89()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004ab89()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;) (expression_statement "ppcVar19 = &local_54;" (assignment_expression "ppcVar19 = &local_54" identifier = (pointer_expression "&local_54" & identifier)) ;) (for_statement "for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }" for ( (assignment_expression "iVar12 = extraout_ECX" identifier = identifier) ; (binary_expression "iVar12 != 0" identifier != number_literal) ; (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ) (compound_statement "{\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }" { (expression_statement "*ppcVar19 = pcVar6;" (assignment_expression "*ppcVar19 = pcVar6" (pointer_expression "*ppcVar19" * identifier) = identifier) ;) (expression_statement "ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;" (assignment_expression "ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "ppcVar19 + (uint)bVar28 * -2 + 1" (binary_expression "ppcVar19 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x5c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x5c)" identifier = (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    /* WARNING: Subroutine does not return */\n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    /* WARNING: Subroutine does not return */\n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }" { (expression_statement "local_bc = (code *)(unaff_EBP + 0x4c725);" (assignment_expression "local_bc = (code *)(unaff_EBP + 0x4c725)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4c725)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4c725)" ( (binary_expression "unaff_EBP + 0x4c725" identifier + number_literal) )))) ;) (expression_statement "local_c4 = (code *)0x0;" (assignment_expression "local_c4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar20 = (int *)0x0;" (assignment_expression "piVar20 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a4 = (uint *)(unaff_EBP + 0x577cb);" (assignment_expression "local_a4 = (uint *)(unaff_EBP + 0x577cb)" identifier = (cast_expression "(uint *)(unaff_EBP + 0x577cb)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x577cb)" ( (binary_expression "unaff_EBP + 0x577cb" identifier + number_literal) )))) ;) (labeled_statement "LAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);" statement_identifier : (do_statement "do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);" do (compound_statement "{\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    }" { (if_statement "if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 4) == 2)" ( (binary_expression "*(int *)(iVar12 + 4) == 2" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }" { (if_statement "if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }" if (parenthesized_expression "(*(int **)(iVar12 + 0x28) < piVar8)" ( (binary_expression "*(int **)(iVar12 + 0x28) < piVar8" (pointer_expression "*(int **)(iVar12 + 0x28)" * (cast_expression "(int **)(iVar12 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }" { (if_statement "if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }" if (parenthesized_expression "(*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0)" ( (binary_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0" (pointer_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP)" * (cast_expression "(int *)(&DAT_0008a8e7 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008a8e7 + unaff_EBP)" ( (binary_expression "&DAT_0008a8e7 + unaff_EBP" (pointer_expression "&DAT_0008a8e7" & identifier) + identifier) )))) == number_literal) )) (compound_statement "{\n            local_34 = (int *)FUN_00022830();\n          }" { (expression_statement "local_34 = (int *)FUN_00022830();" (assignment_expression "local_34 = (int *)FUN_00022830()" identifier = (cast_expression "(int *)FUN_00022830()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00022830()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n            local_34 = (int *)FUN_000222e0();\n          }" else (compound_statement "{\n            local_34 = (int *)FUN_000222e0();\n          }" { (expression_statement "local_34 = (int *)FUN_000222e0();" (assignment_expression "local_34 = (int *)FUN_000222e0()" identifier = (cast_expression "(int *)FUN_000222e0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000222e0()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);" (assignment_expression "local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48)" ( (binary_expression "*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) + (binary_expression "*(int *)(iVar12 + 0x28) * 0x48" (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) * number_literal)) )))) ;) (if_statement "if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }" if (parenthesized_expression "(local_24 != (void *)0x0)" ( (binary_expression "local_24 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }" { (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "error();" (call_expression "error()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(local_24);" (call_expression "free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) })) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8 = local_c0;" (assignment_expression "piVar8 = local_c0" identifier = identifier) ;) (expression_statement "local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);" (assignment_expression "local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9])" identifier = (cast_expression "(void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(1,0,local_c0[8],local_c0[9])" identifier (argument_list "(1,0,local_c0[8],local_c0[9])" ( number_literal , number_literal , (subscript_expression "local_c0[8]" identifier [ number_literal ]) , (subscript_expression "local_c0[9]" identifier [ number_literal ]) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (if_statement "if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }" if (parenthesized_expression "(local_24 != (void *)0x0)" ( (binary_expression "local_24 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_20 = piVar8[8];\n          }" { (expression_statement "local_20 = piVar8[8];" (assignment_expression "local_20 = piVar8[8]" identifier = (subscript_expression "piVar8[8]" identifier [ number_literal ])) ;) })) (expression_statement "piVar20 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar12 = iVar12 + 0x48;" (assignment_expression "iVar12 = iVar12 + 0x48" identifier = (binary_expression "iVar12 + 0x48" identifier + number_literal)) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 <= piVar20) break;" if (parenthesized_expression "(piVar8 <= piVar20)" ( (binary_expression "piVar8 <= piVar20" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002bab7;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }" else (compound_statement "{\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }" { (expression_statement "local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));" (assignment_expression "local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001))" identifier = (cast_expression "(code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001))" ( (binary_expression "(int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001)" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(*(int *)(iVar12 + 4) == 0x70000001)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar12 + 4) == 0x70000001)" ( (binary_expression "*(int *)(iVar12 + 4) == 0x70000001" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) == number_literal) )))) )))) ;) }))) (expression_statement "piVar20 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar12 = iVar12 + 0x48;" (assignment_expression "iVar12 = iVar12 + 0x48" identifier = (binary_expression "iVar12 + 0x48" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar20 < piVar8)" ( (binary_expression "piVar20 < piVar8" identifier < identifier) )) ;)) (expression_statement "local_94 = (int *)0x0;" (assignment_expression "local_94 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = (byte *)((int)local_c4 - 1);" (assignment_expression "local_90 = (byte *)((int)local_c4 - 1)" identifier = (cast_expression "(byte *)((int)local_c4 - 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 - 1)" ( (binary_expression "(int)local_c4 - 1" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);" (assignment_expression "local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP)" identifier = (cast_expression "(undefined4 *)(&UNK_0008e39b + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0008e39b + unaff_EBP)" ( (binary_expression "&UNK_0008e39b + unaff_EBP" (pointer_expression "&UNK_0008e39b" & identifier) + identifier) )))) ;) (if_statement "if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    /* WARNING: Subroutine does not return */\n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }" if (parenthesized_expression "(local_c4 != (code *)0x0)" ( (binary_expression "local_c4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    /* WARNING: Subroutine does not return */\n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }" { (labeled_statement "LAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);" statement_identifier : (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;)) (expression_statement "puVar14 = puVar13 + (int)local_94 * 0x12;" (assignment_expression "puVar14 = puVar13 + (int)local_94 * 0x12" identifier = (binary_expression "puVar13 + (int)local_94 * 0x12" identifier + (binary_expression "(int)local_94 * 0x12" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (if_statement "if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    /* WARNING: Subroutine does not return */\n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }" if (parenthesized_expression "(piVar8 <= local_94)" ( (binary_expression "piVar8 <= local_94" identifier <= identifier) )) (compound_statement "{\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    /* WARNING: Subroutine does not return */\n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }" { (labeled_statement "LAB_0002bc1b:\n        local_a4 = puVar14;" statement_identifier : (expression_statement "local_a4 = puVar14;" (assignment_expression "local_a4 = puVar14" identifier = identifier) ;)) comment (expression_statement "__assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));" (call_expression "__assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f))" identifier (argument_list "((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f))" ( (cast_expression "(char *)(unaff_EBP + 0x4cf20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cf20)" ( (binary_expression "unaff_EBP + 0x4cf20" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EBP + 0x4b054)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b054)" ( (binary_expression "unaff_EBP + 0x4b054" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EBP + 0x62a1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x62a1f)" ( (binary_expression "unaff_EBP + 0x62a1f" identifier + number_literal) ))) ))) ;) })) (expression_statement "uVar15 = puVar14[1];" (assignment_expression "uVar15 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = puVar14;" (assignment_expression "local_a4 = puVar14" identifier = identifier) ;) (expression_statement "piVar20 = local_94;" (assignment_expression "piVar20 = local_94" identifier = identifier) ;) (while_statement "while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }" while (parenthesized_expression "(uVar15 != 0x70000001)" ( (binary_expression "uVar15 != 0x70000001" identifier != number_literal) )) (compound_statement "{\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }" { (expression_statement "piVar20 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (piVar20 == piVar8) goto LAB_0002bc1b;" if (parenthesized_expression "(piVar20 == piVar8)" ( (binary_expression "piVar20 == piVar8" identifier == identifier) )) (goto_statement "goto LAB_0002bc1b;" goto statement_identifier ;)) (expression_statement "uVar15 = local_a4[0x13];" (assignment_expression "uVar15 = local_a4[0x13]" identifier = (subscript_expression "local_a4[0x13]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = local_a4 + 0x12;" (assignment_expression "local_a4 = local_a4 + 0x12" identifier = (binary_expression "local_a4 + 0x12" identifier + number_literal)) ;) })) (expression_statement "local_94 = (int *)((int)piVar20 + 1);" (assignment_expression "local_94 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_c0 = piVar20;" (assignment_expression "local_c0 = piVar20" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }" if (parenthesized_expression "((*(byte *)((int)local_a4 + 9) & 2) == 0)" ( (binary_expression "(*(byte *)((int)local_a4 + 9) & 2) == 0" (parenthesized_expression "(*(byte *)((int)local_a4 + 9) & 2)" ( (binary_expression "*(byte *)((int)local_a4 + 9) & 2" (pointer_expression "*(byte *)((int)local_a4 + 9)" * (cast_expression "(byte *)((int)local_a4 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + 9)" ( (binary_expression "(int)local_a4 + 9" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }" { (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" identifier = (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (if_statement "if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" { (labeled_statement "LAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();" statement_identifier : (expression_statement "pbVar9 = (byte *)dcgettext();" (assignment_expression "pbVar9 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar12 = 0x16;" (assignment_expression "iVar12 = 0x16" identifier = number_literal) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar16 = (byte *)(unaff_EBP + 0x4ce73);" (assignment_expression "pbVar16 = (byte *)(unaff_EBP + 0x4ce73)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x4ce73)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ce73)" ( (binary_expression "unaff_EBP + 0x4ce73" identifier + number_literal) )))) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar9 < *pbVar16;" (assignment_expression "bVar25 = *pbVar9 < *pbVar16" identifier = (binary_expression "*pbVar9 < *pbVar16" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar27 = *pbVar9 == *pbVar16;" (assignment_expression "bVar27 = *pbVar9 == *pbVar16" identifier = (binary_expression "*pbVar9 == *pbVar16" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" identifier = (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }" { (if_statement "if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" if (parenthesized_expression "((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4))" ( (binary_expression "(uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)" (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(uint *)(param_1 + 0x68) <= *local_a4)" ( (binary_expression "*(uint *)(param_1 + 0x68) <= *local_a4" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= (pointer_expression "*local_a4" * identifier)) ))) )) (compound_statement "{\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" { (expression_statement "local_c4 = (code *)dcgettext();" (assignment_expression "local_c4 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" else (compound_statement "{\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" { (expression_statement "local_c4 = (code *)(*local_a4 + uVar15);" (assignment_expression "local_c4 = (code *)(*local_a4 + uVar15)" identifier = (cast_expression "(code *)(*local_a4 + uVar15)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_a4 + uVar15)" ( (binary_expression "*local_a4 + uVar15" (pointer_expression "*local_a4" * identifier) + identifier) )))) ;) (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) }))) (goto_statement "goto LAB_0002bd4e;" goto statement_identifier ;) })) (if_statement "if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }" { (expression_statement "uVar18 = *local_a4;" (assignment_expression "uVar18 = *local_a4" identifier = (pointer_expression "*local_a4" * identifier)) ;) (goto_statement "goto LAB_0002c5fe;" goto statement_identifier ;) })) (labeled_statement "LAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();" statement_identifier : (expression_statement "pbVar9 = (byte *)dcgettext();" (assignment_expression "pbVar9 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar12 = 0xd;" (assignment_expression "iVar12 = 0xd" identifier = number_literal) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar16 = (byte *)(unaff_EBP + 0x4cea2);" (assignment_expression "pbVar16 = (byte *)(unaff_EBP + 0x4cea2)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x4cea2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cea2)" ( (binary_expression "unaff_EBP + 0x4cea2" identifier + number_literal) )))) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar9 < *pbVar16;" (assignment_expression "bVar25 = *pbVar9 < *pbVar16" identifier = (binary_expression "*pbVar9 < *pbVar16" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar27 = *pbVar9 == *pbVar16;" (assignment_expression "bVar27 = *pbVar9 == *pbVar16" identifier = (binary_expression "*pbVar9 == *pbVar16" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }" { (if_statement "if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }" if (parenthesized_expression "((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4))" ( (binary_expression "(*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)" (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(uint *)(param_1 + 0x68) <= *local_a4)" ( (binary_expression "*(uint *)(param_1 + 0x68) <= *local_a4" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= (pointer_expression "*local_a4" * identifier)) ))) )) (compound_statement "{\n              pbVar9 = (byte *)dcgettext();\n            }" { (expression_statement "pbVar9 = (byte *)dcgettext();" (assignment_expression "pbVar9 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }" else (compound_statement "{\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }" { (expression_statement "pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));" (assignment_expression "pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100))" identifier = (cast_expression "(byte *)(*local_a4 + *(int *)(param_1 + 100))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_a4 + *(int *)(param_1 + 100))" ( (binary_expression "*local_a4 + *(int *)(param_1 + 100)" (pointer_expression "*local_a4" * identifier) + (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) )))) ;) }))) (labeled_statement "LAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);" statement_identifier : (expression_statement "local_b4 = (code *)(pbVar9 + 0xd);" (assignment_expression "local_b4 = (code *)(pbVar9 + 0xd)" identifier = (cast_expression "(code *)(pbVar9 + 0xd)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 0xd)" ( (binary_expression "pbVar9 + 0xd" identifier + number_literal) )))) ;)) }) (else_clause "else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }" else (compound_statement "{\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }" { (labeled_statement "LAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);" statement_identifier : (expression_statement "local_b4 = (code *)(&UNK_00050218 + unaff_EBP);" (assignment_expression "local_b4 = (code *)(&UNK_00050218 + unaff_EBP)" identifier = (cast_expression "(code *)(&UNK_00050218 + unaff_EBP)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00050218 + unaff_EBP)" ( (binary_expression "&UNK_00050218 + unaff_EBP" (pointer_expression "&UNK_00050218" & identifier) + identifier) )))) ;)) }))) (expression_statement "local_c4 = *(code **)(param_1 + 0x5c);" (assignment_expression "local_c4 = *(code **)(param_1 + 0x5c)" identifier = (pointer_expression "*(code **)(param_1 + 0x5c)" * (cast_expression "(code **)(param_1 + 0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;" if (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" ( (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002bc78;" goto statement_identifier ;)) (expression_statement "local_bc = FUN_0004ce60 + unaff_EBP;" (assignment_expression "local_bc = FUN_0004ce60 + unaff_EBP" identifier = (binary_expression "FUN_0004ce60 + unaff_EBP" identifier + identifier)) ;) (expression_statement "local_c0 = (int *)0x0;" (assignment_expression "local_c0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (code *)(unaff_EBP + 0x4b0b1);" (assignment_expression "local_ac = (code *)(unaff_EBP + 0x4b0b1)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4b0b1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b0b1)" ( (binary_expression "unaff_EBP + 0x4b0b1" identifier + number_literal) )))) ;) (expression_statement "local_9c = (void *)(unaff_EBP + 0x4b727);" (assignment_expression "local_9c = (void *)(unaff_EBP + 0x4b727)" identifier = (cast_expression "(void *)(unaff_EBP + 0x4b727)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b727)" ( (binary_expression "unaff_EBP + 0x4b727" identifier + number_literal) )))) ;) (do_statement "do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);" do (compound_statement "{\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          }" { (if_statement "if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 == (code *)0x0)" ( (binary_expression "local_c4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }" { (expression_statement "uVar24 = auStack_cc < (undefined1 *)0x4;" (assignment_expression "uVar24 = auStack_cc < (undefined1 *)0x4" identifier = (binary_expression "auStack_cc < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar26 = &stack0x00000000 == (undefined1 *)0xd0;" (assignment_expression "uVar26 = &stack0x00000000 == (undefined1 *)0xd0" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xd0" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xd0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4b720);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4b720)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4b720)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b720)" ( (binary_expression "unaff_EBP + 0x4b720" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar12 = 0x12;" (assignment_expression "iVar12 = 0x12" identifier = number_literal) ;) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" identifier = identifier) ;) (do_statement "do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);" do (compound_statement "{\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "uVar24 = (byte)*pcVar6 < (byte)*pcVar17" identifier = (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "uVar26 = *pcVar6 == *pcVar17;" (assignment_expression "uVar26 = *pcVar6 == *pcVar17" identifier = (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" * identifier) == (pointer_expression "*pcVar17" * identifier))) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar26)" ( (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }" if (parenthesized_expression "((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24)" ( (binary_expression "(!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar26)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar26" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar26" ! (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0002c699;" goto statement_identifier ;) })) }) (else_clause "else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" else (compound_statement "{\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" { (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" identifier = (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (if_statement "if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" if (parenthesized_expression "((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 )" ( (binary_expression "(uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" ( (comma_expression "uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18" (assignment_expression "uVar18 = *(uint *)local_c4" identifier = (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) , (binary_expression "*(uint *)(param_1 + 0x68) <= uVar18" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= identifier)) ))) )) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x12;" (assignment_expression "iVar12 = 0x12" identifier = number_literal) ;) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" identifier = identifier) ;) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" do (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "bVar25 = (byte)*pcVar6 < (byte)*pcVar17" identifier = (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar6 == *pcVar17;" (assignment_expression "bVar27 = *pcVar6 == *pcVar17" identifier = (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" * identifier) == (pointer_expression "*pcVar17" * identifier))) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }" { (if_statement "if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" if (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" else (if_statement "if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" if (parenthesized_expression "(*(uint *)local_c4 < *(uint *)(param_1 + 0x68))" ( (binary_expression "*(uint *)local_c4 < *(uint *)(param_1 + 0x68)" (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }" { (expression_statement "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);" (assignment_expression "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" identifier = (cast_expression "(code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 100) + *(uint *)local_c4)" ( (binary_expression "*(int *)(param_1 + 100) + *(uint *)local_c4" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) + (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )))) ;) }) (else_clause "else {\n                    pcVar6 = (code *)dcgettext();\n                  }" else (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }))))) (goto_statement "goto LAB_0002c699;" goto statement_identifier ;) })) }) (else_clause "else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" else (compound_statement "{\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" { (expression_statement "bVar25 = CARRY4(uVar15,uVar18);" (assignment_expression "bVar25 = CARRY4(uVar15,uVar18)" identifier = (call_expression "CARRY4(uVar15,uVar18)" identifier (argument_list "(uVar15,uVar18)" ( identifier , identifier )))) ;) (expression_statement "pcVar6 = (code *)(uVar15 + uVar18);" (assignment_expression "pcVar6 = (code *)(uVar15 + uVar18)" identifier = (cast_expression "(code *)(uVar15 + uVar18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + uVar18)" ( (binary_expression "uVar15 + uVar18" identifier + identifier) )))) ;) (expression_statement "bVar27 = pcVar6 == (code *)0x0;" (assignment_expression "bVar27 = pcVar6 == (code *)0x0" identifier = (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x12;" (assignment_expression "iVar12 = 0x12" identifier = number_literal) ;) (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar11 = local_bc;" (assignment_expression "pcVar11 = local_bc" identifier = identifier) ;) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" do (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar25 = (byte)*pcVar17 < (byte)*pcVar11" identifier = (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar17 == *pcVar11;" (assignment_expression "bVar27 = *pcVar17 == *pcVar11" identifier = (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" * identifier) == (pointer_expression "*pcVar11" * identifier))) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" { (labeled_statement "LAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);" statement_identifier : (expression_statement "iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);" (assignment_expression "iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4)" identifier = (call_expression "strcmp((char *)(pcVar6 + 0x12),(char *)local_b4)" identifier (argument_list "((char *)(pcVar6 + 0x12),(char *)local_b4)" ( (cast_expression "(char *)(pcVar6 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x12)" ( (binary_expression "pcVar6 + 0x12" identifier + number_literal) ))) , (cast_expression "(char *)local_b4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar12 == 0) goto LAB_0002be90;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002be90;" goto statement_identifier ;)) })) }))) }))) (expression_statement "local_c0 = (int *)((int)local_c0 + 1);" (assignment_expression "local_c0 = (int *)((int)local_c0 + 1)" identifier = (cast_expression "(int *)((int)local_c0 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c0 + 1)" ( (binary_expression "(int)local_c0 + 1" (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_c4 = (code *)((int)local_c4 + 0x48);" (assignment_expression "local_c4 = (code *)((int)local_c4 + 0x48)" identifier = (cast_expression "(code *)((int)local_c4 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x48)" ( (binary_expression "(int)local_c4 + 0x48" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_c0 < piVar8)" ( (binary_expression "local_c0 < piVar8" identifier < identifier) )) ;) }) (else_clause "else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" else (compound_statement "{\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" { (expression_statement "uVar18 = *local_a4;" (assignment_expression "uVar18 = *local_a4" identifier = (pointer_expression "*local_a4" * identifier)) ;) (expression_statement "bVar25 = uVar18 < *(uint *)(param_1 + 0x68);" (assignment_expression "bVar25 = uVar18 < *(uint *)(param_1 + 0x68)" identifier = (binary_expression "uVar18 < *(uint *)(param_1 + 0x68)" identifier < (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))))) ;) (expression_statement "bVar27 = uVar18 == *(uint *)(param_1 + 0x68);" (assignment_expression "bVar27 = uVar18 == *(uint *)(param_1 + 0x68)" identifier = (binary_expression "uVar18 == *(uint *)(param_1 + 0x68)" identifier == (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))))) ;) (if_statement "if (!bVar25) goto LAB_0002c92b;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_0002c92b;" goto statement_identifier ;)) (expression_statement "local_c4 = (code *)(uVar15 + uVar18);" (assignment_expression "local_c4 = (code *)(uVar15 + uVar18)" identifier = (cast_expression "(code *)(uVar15 + uVar18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + uVar18)" ( (binary_expression "uVar15 + uVar18" identifier + identifier) )))) ;) (expression_statement "iVar12 = 0x16;" (assignment_expression "iVar12 = 0x16" identifier = number_literal) ;) (expression_statement "puVar14 = (uint *)local_c4;" (assignment_expression "puVar14 = (uint *)local_c4" identifier = (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar9 = (byte *)(unaff_EBP + 0x4ce73);" (assignment_expression "pbVar9 = (byte *)(unaff_EBP + 0x4ce73)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x4ce73)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ce73)" ( (binary_expression "unaff_EBP + 0x4ce73" identifier + number_literal) )))) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*puVar14 < *pbVar9;" (assignment_expression "bVar25 = (byte)*puVar14 < *pbVar9" identifier = (binary_expression "(byte)*puVar14 < *pbVar9" (binary_expression "(byte)*puVar14" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar27 = (byte)*puVar14 == *pbVar9;" (assignment_expression "bVar27 = (byte)*puVar14 == *pbVar9" identifier = (binary_expression "(byte)*puVar14 == *pbVar9" (binary_expression "(byte)*puVar14" (parenthesized_expression "(byte)" ( identifier )) * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);" (assignment_expression "puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar14 + (uint)bVar28 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + (uint)bVar28 * -2 + 1)" ( (binary_expression "(int)puVar14 + (uint)bVar28 * -2 + 1" (binary_expression "(int)puVar14 + (uint)bVar28 * -2" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }" if (parenthesized_expression "((!bVar25 && !bVar27) != bVar25)" ( (binary_expression "(!bVar25 && !bVar27) != bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) != identifier) )) (compound_statement "{\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }" { (labeled_statement "LAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;" statement_identifier : (if_statement "if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;" if (parenthesized_expression "(*(uint *)(param_1 + 0x68) <= uVar18)" ( (binary_expression "*(uint *)(param_1 + 0x68) <= uVar18" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_0002c9ae;" goto statement_identifier ;))) (expression_statement "bVar25 = CARRY4(uVar18,uVar15);" (assignment_expression "bVar25 = CARRY4(uVar18,uVar15)" identifier = (call_expression "CARRY4(uVar18,uVar15)" identifier (argument_list "(uVar18,uVar15)" ( identifier , identifier )))) ;) (expression_statement "pbVar9 = (byte *)(uVar18 + uVar15);" (assignment_expression "pbVar9 = (byte *)(uVar18 + uVar15)" identifier = (cast_expression "(byte *)(uVar18 + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar18 + uVar15)" ( (binary_expression "uVar18 + uVar15" identifier + identifier) )))) ;) (expression_statement "bVar27 = pbVar9 == (byte *)0x0;" (assignment_expression "bVar27 = pbVar9 == (byte *)0x0" identifier = (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0xd;" (assignment_expression "iVar12 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar9;" (assignment_expression "pbVar16 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)(unaff_EBP + 0x4cea2);" (assignment_expression "pbVar23 = (byte *)(unaff_EBP + 0x4cea2)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x4cea2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cea2)" ( (binary_expression "unaff_EBP + 0x4cea2" identifier + number_literal) )))) ;) (do_statement "do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);" do (compound_statement "{\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar16 < *pbVar23;" (assignment_expression "bVar25 = *pbVar16 < *pbVar23" identifier = (binary_expression "*pbVar16 < *pbVar23" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar27 = *pbVar16 == *pbVar23;" (assignment_expression "bVar27 = *pbVar16 == *pbVar23" identifier = (binary_expression "*pbVar16 == *pbVar23" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002ca17;" goto statement_identifier ;)) (goto_statement "goto LAB_0002c62d;" goto statement_identifier ;) })) (labeled_statement "LAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);" statement_identifier : (expression_statement "local_b4 = (code *)((int)local_c4 + 0x16);" (assignment_expression "local_b4 = (code *)((int)local_c4 + 0x16)" identifier = (cast_expression "(code *)((int)local_c4 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x16)" ( (binary_expression "(int)local_c4 + 0x16" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "local_c4 = (code *)puVar13;" (assignment_expression "local_c4 = (code *)puVar13" identifier = (cast_expression "(code *)puVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;" if (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" ( (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002bc78;" goto statement_identifier ;)) (expression_statement "local_bc = (code *)(unaff_EBP + 0x4ce8a);" (assignment_expression "local_bc = (code *)(unaff_EBP + 0x4ce8a)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4ce8a)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ce8a)" ( (binary_expression "unaff_EBP + 0x4ce8a" identifier + number_literal) )))) ;) (expression_statement "local_c0 = (int *)0x0;" (assignment_expression "local_c0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (code *)(unaff_EBP + 0x4b0b1);" (assignment_expression "local_ac = (code *)(unaff_EBP + 0x4b0b1)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4b0b1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b0b1)" ( (binary_expression "unaff_EBP + 0x4b0b1" identifier + number_literal) )))) ;) (expression_statement "local_9c = (void *)(unaff_EBP + 0x4b727);" (assignment_expression "local_9c = (void *)(unaff_EBP + 0x4b727)" identifier = (cast_expression "(void *)(unaff_EBP + 0x4b727)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b727)" ( (binary_expression "unaff_EBP + 0x4b727" identifier + number_literal) )))) ;) (do_statement "do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);" do (compound_statement "{\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          }" { (if_statement "if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 == (code *)0x0)" ( (binary_expression "local_c4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }" { (expression_statement "uVar24 = auStack_cc < (undefined1 *)0x4;" (assignment_expression "uVar24 = auStack_cc < (undefined1 *)0x4" identifier = (binary_expression "auStack_cc < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar26 = &stack0x00000000 == (undefined1 *)0xd0;" (assignment_expression "uVar26 = &stack0x00000000 == (undefined1 *)0xd0" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xd0" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xd0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4b720);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4b720)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4b720)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b720)" ( (binary_expression "unaff_EBP + 0x4b720" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar12 = 0x17;" (assignment_expression "iVar12 = 0x17" identifier = number_literal) ;) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" identifier = identifier) ;) (do_statement "do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);" do (compound_statement "{\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "uVar24 = (byte)*pcVar6 < (byte)*pcVar17" identifier = (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "uVar26 = *pcVar6 == *pcVar17;" (assignment_expression "uVar26 = *pcVar6 == *pcVar17" identifier = (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" * identifier) == (pointer_expression "*pcVar17" * identifier))) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar26)" ( (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }" if (parenthesized_expression "((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24)" ( (binary_expression "(!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar26)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar26" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar26" ! (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0002bdb1;" goto statement_identifier ;) })) }) (else_clause "else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" else (compound_statement "{\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" { (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" identifier = (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (if_statement "if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" if (parenthesized_expression "((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 )" ( (binary_expression "(uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" ( (comma_expression "uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18" (assignment_expression "uVar18 = *(uint *)local_c4" identifier = (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) , (binary_expression "*(uint *)(param_1 + 0x68) <= uVar18" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= identifier)) ))) )) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x17;" (assignment_expression "iVar12 = 0x17" identifier = number_literal) ;) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" identifier = identifier) ;) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" do (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "bVar25 = (byte)*pcVar6 < (byte)*pcVar17" identifier = (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar6 == *pcVar17;" (assignment_expression "bVar27 = *pcVar6 == *pcVar17" identifier = (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" * identifier) == (pointer_expression "*pcVar17" * identifier))) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }" { (if_statement "if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" if (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" else (if_statement "if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" if (parenthesized_expression "(*(uint *)local_c4 < *(uint *)(param_1 + 0x68))" ( (binary_expression "*(uint *)local_c4 < *(uint *)(param_1 + 0x68)" (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }" { (expression_statement "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);" (assignment_expression "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" identifier = (cast_expression "(code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 100) + *(uint *)local_c4)" ( (binary_expression "*(int *)(param_1 + 100) + *(uint *)local_c4" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) + (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )))) ;) }) (else_clause "else {\n                    pcVar6 = (code *)dcgettext();\n                  }" else (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }))))) (goto_statement "goto LAB_0002bdb1;" goto statement_identifier ;) })) }) (else_clause "else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" else (compound_statement "{\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" { (expression_statement "bVar25 = CARRY4(uVar15,uVar18);" (assignment_expression "bVar25 = CARRY4(uVar15,uVar18)" identifier = (call_expression "CARRY4(uVar15,uVar18)" identifier (argument_list "(uVar15,uVar18)" ( identifier , identifier )))) ;) (expression_statement "pcVar6 = (code *)(uVar15 + uVar18);" (assignment_expression "pcVar6 = (code *)(uVar15 + uVar18)" identifier = (cast_expression "(code *)(uVar15 + uVar18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + uVar18)" ( (binary_expression "uVar15 + uVar18" identifier + identifier) )))) ;) (expression_statement "bVar27 = pcVar6 == (code *)0x0;" (assignment_expression "bVar27 = pcVar6 == (code *)0x0" identifier = (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x17;" (assignment_expression "iVar12 = 0x17" identifier = number_literal) ;) (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar11 = local_bc;" (assignment_expression "pcVar11 = local_bc" identifier = identifier) ;) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" do (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar25 = (byte)*pcVar17 < (byte)*pcVar11" identifier = (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar17 == *pcVar11;" (assignment_expression "bVar27 = *pcVar17 == *pcVar11" identifier = (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" * identifier) == (pointer_expression "*pcVar11" * identifier))) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" { (labeled_statement "LAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);" statement_identifier : (expression_statement "iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);" (assignment_expression "iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4)" identifier = (call_expression "strcmp((char *)(pcVar6 + 0x17),(char *)local_b4)" identifier (argument_list "((char *)(pcVar6 + 0x17),(char *)local_b4)" ( (cast_expression "(char *)(pcVar6 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x17)" ( (binary_expression "pcVar6 + 0x17" identifier + number_literal) ))) , (cast_expression "(char *)local_b4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar12 == 0) goto LAB_0002be90;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002be90;" goto statement_identifier ;)) })) }))) }))) (expression_statement "local_c0 = (int *)((int)local_c0 + 1);" (assignment_expression "local_c0 = (int *)((int)local_c0 + 1)" identifier = (cast_expression "(int *)((int)local_c0 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c0 + 1)" ( (binary_expression "(int)local_c0 + 1" (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_c4 = (code *)((int)local_c4 + 0x48);" (assignment_expression "local_c4 = (code *)((int)local_c4 + 0x48)" identifier = (cast_expression "(code *)((int)local_c4 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x48)" ( (binary_expression "(int)local_c4 + 0x48" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_c0 < piVar8)" ( (binary_expression "local_c0 < piVar8" identifier < identifier) )) ;) }))) (goto_statement "goto LAB_0002be9a;" goto statement_identifier ;) })) (if_statement "if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }" if (parenthesized_expression "(((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0))" ( (binary_expression "((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)" (parenthesized_expression "((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0))" ( (binary_expression "(*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0)" ( (binary_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0" (pointer_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP)" * (cast_expression "(int *)(&DAT_0008a8d7 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008a8d7 + unaff_EBP)" ( (binary_expression "&DAT_0008a8d7 + unaff_EBP" (pointer_expression "&DAT_0008a8d7" & identifier) + identifier) )))) != number_literal) )) && (parenthesized_expression "(puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)" ( (comma_expression "puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" * (cast_expression "(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" ( (binary_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4" (pointer_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP)" * (cast_expression "(int *)(&DAT_0008a8d7 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008a8d7 + unaff_EBP)" ( (binary_expression "&DAT_0008a8d7 + unaff_EBP" (pointer_expression "&DAT_0008a8d7" & identifier) + identifier) )))) + (binary_expression "(int)piVar20 * 4" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) , (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)" ( (comma_expression "pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0" (assignment_expression "pcVar6 = (code *)*puVar2" identifier = (cast_expression "(code *)*puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) , (binary_expression "pcVar6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }" { (expression_statement "local_bc = FUN_0004ce60 + unaff_EBP;" (assignment_expression "local_bc = FUN_0004ce60 + unaff_EBP" identifier = (binary_expression "FUN_0004ce60 + unaff_EBP" identifier + identifier)) ;) (expression_statement "local_ac = (code *)(unaff_EBP + 0x4b0b1);" (assignment_expression "local_ac = (code *)(unaff_EBP + 0x4b0b1)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4b0b1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b0b1)" ( (binary_expression "unaff_EBP + 0x4b0b1" identifier + number_literal) )))) ;) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4b727);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4b727)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4b727)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b727)" ( (binary_expression "unaff_EBP + 0x4b727" identifier + number_literal) )))) ;) (do_statement "do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );" do (compound_statement "{\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        }" { (expression_statement "local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);" (assignment_expression "local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12)" identifier = (cast_expression "(code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + *(uint *)(pcVar6 + 4) * 0x12)" ( (binary_expression "puVar13 + *(uint *)(pcVar6 + 4) * 0x12" identifier + (binary_expression "*(uint *)(pcVar6 + 4) * 0x12" (pointer_expression "*(uint *)(pcVar6 + 4)" * (cast_expression "(uint *)(pcVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) * number_literal)) )))) ;) (if_statement "if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }" if (parenthesized_expression "((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0))" ( (binary_expression "(local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)" (parenthesized_expression "(local_c4 == (code *)0x0)" ( (binary_expression "local_c4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }" { (labeled_statement "LAB_0002c8dc:\n            local_b4 = pcVar6;" statement_identifier : (expression_statement "local_b4 = pcVar6;" (assignment_expression "local_b4 = pcVar6" identifier = identifier) ;)) (expression_statement "pcVar17 = (code *)dcgettext();" (assignment_expression "pcVar17 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "pcVar6 = local_b4;" (assignment_expression "pcVar6 = local_b4" identifier = identifier) ;) (expression_statement "puVar5 = auStack_cc;" (assignment_expression "puVar5 = auStack_cc" identifier = identifier) ;) }) (else_clause "else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }" else (compound_statement "{\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }" { (expression_statement "uVar15 = *(uint *)local_c4;" (assignment_expression "uVar15 = *(uint *)local_c4" identifier = (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);" (assignment_expression "pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15)" identifier = (cast_expression "(code *)(*(int *)(param_1 + 100) + uVar15)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 100) + uVar15)" ( (binary_expression "*(int *)(param_1 + 100) + uVar15" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "bVar25 = uVar15 < *(uint *)(param_1 + 0x68);" (assignment_expression "bVar25 = uVar15 < *(uint *)(param_1 + 0x68)" identifier = (binary_expression "uVar15 < *(uint *)(param_1 + 0x68)" identifier < (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))))) ;) (expression_statement "puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));" (assignment_expression "puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68))" identifier = (cast_expression "(undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 - *(uint *)(param_1 + 0x68))" ( (binary_expression "uVar15 - *(uint *)(param_1 + 0x68)" identifier - (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) )))) ;) (if_statement "if (!bVar25) goto LAB_0002c8dc;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_0002c8dc;" goto statement_identifier ;)) }))) (expression_statement "bVar27 = puVar5 == (undefined1 *)0x0;" (assignment_expression "bVar27 = puVar5 == (undefined1 *)0x0" identifier = (binary_expression "puVar5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x13;" (assignment_expression "iVar12 = 0x13" identifier = number_literal) ;) (expression_statement "pcVar11 = local_bc;" (assignment_expression "pcVar11 = local_bc" identifier = identifier) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar25 = (byte)*pcVar17 < (byte)*pcVar11" identifier = (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar17 == *pcVar11;" (assignment_expression "bVar27 = *pcVar17 == *pcVar11" identifier = (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" * identifier) == (pointer_expression "*pcVar11" * identifier))) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002be90;" goto statement_identifier ;)) (expression_statement "pcVar6 = *(code **)pcVar6;" (assignment_expression "pcVar6 = *(code **)pcVar6" identifier = (pointer_expression "*(code **)pcVar6" * (cast_expression "(code **)pcVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (pcVar6 == (code *)0x0) break;" if (parenthesized_expression "(pcVar6 == (code *)0x0)" ( (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0002bc78;" goto statement_identifier ;) })) })) (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (labeled_statement "LAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }" statement_identifier : (if_statement "if (local_34 != (int *)0x0) {\n    free(local_34);\n  }" if (parenthesized_expression "(local_34 != (int *)0x0)" ( (binary_expression "local_34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_34);\n  }" { (expression_statement "free(local_34);" (call_expression "free(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) }))) (if_statement "if (local_24 != (void *)0x0) {\n    free(local_24);\n  }" if (parenthesized_expression "(local_24 != (void *)0x0)" ( (binary_expression "local_24 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_24);\n  }" { (expression_statement "free(local_24);" (call_expression "free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) })) (return_statement "return local_70;" return identifier ;) (labeled_statement "LAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);" statement_identifier : (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002be9a:\n  pcVar6 = local_c4;" statement_identifier : (expression_statement "pcVar6 = local_c4;" (assignment_expression "pcVar6 = local_c4" identifier = identifier) ;)) (if_statement "if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }" if (parenthesized_expression "(local_c0 == piVar8)" ( (binary_expression "local_c0 == piVar8" identifier == identifier) )) (compound_statement "{\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }" { (labeled_statement "LAB_0002bc78:\n    pcVar7 = (char *)dcgettext();" statement_identifier : (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (if_statement "if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }" if (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      printf((char *)(unaff_EBP + 0x67e12));\n    }" { (expression_statement "printf((char *)(unaff_EBP + 0x67e12));" (call_expression "printf((char *)(unaff_EBP + 0x67e12))" identifier (argument_list "((char *)(unaff_EBP + 0x67e12))" ( (cast_expression "(char *)(unaff_EBP + 0x67e12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x67e12)" ( (binary_expression "unaff_EBP + 0x67e12" identifier + number_literal) ))) ))) ;) }) (else_clause "else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }" else (compound_statement "{\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }" { (expression_statement "FUN_00022190();" (call_expression "FUN_00022190()" identifier (argument_list "()" ( ))) ;) (expression_statement "printf((char *)(unaff_EBP + 0x4ceb0));" (call_expression "printf((char *)(unaff_EBP + 0x4ceb0))" identifier (argument_list "((char *)(unaff_EBP + 0x4ceb0))" ( (cast_expression "(char *)(unaff_EBP + 0x4ceb0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ceb0)" ( (binary_expression "unaff_EBP + 0x4ceb0" identifier + number_literal) ))) ))) ;) }))) (goto_statement "goto joined_r0x0002c26e;" goto statement_identifier ;) })) (expression_statement "local_44 = *(code **)((int)local_c4 + 0x10);" (assignment_expression "local_44 = *(code **)((int)local_c4 + 0x10)" identifier = (pointer_expression "*(code **)((int)local_c4 + 0x10)" * (cast_expression "(code **)((int)local_c4 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_c4 + 0x10)" ( (binary_expression "(int)local_c4 + 0x10" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_40 = *(uint *)((int)local_c4 + 0x14);" (assignment_expression "local_40 = *(uint *)((int)local_c4 + 0x14)" identifier = (pointer_expression "*(uint *)((int)local_c4 + 0x14)" * (cast_expression "(uint *)((int)local_c4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x14)" ( (binary_expression "(int)local_c4 + 0x14" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));" (assignment_expression "local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" identifier = (cast_expression "(void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" identifier (argument_list "(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" ( number_literal , number_literal , (pointer_expression "*(uint *)((int)pcVar6 + 0x20)" * (cast_expression "(uint *)((int)pcVar6 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pcVar6 + 0x20)" ( (binary_expression "(int)pcVar6 + 0x20" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)pcVar6 + 0x24)" * (cast_expression "(uint *)((int)pcVar6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pcVar6 + 0x24)" ( (binary_expression "(int)pcVar6 + 0x24" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "local_48 = (code *)0x0;" (assignment_expression "local_48 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }" if (parenthesized_expression "(local_4c != (void *)0x0)" ( (binary_expression "local_4c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }" { (expression_statement "local_48 = *(code **)((int)pcVar6 + 0x20);" (assignment_expression "local_48 = *(code **)((int)pcVar6 + 0x20)" identifier = (pointer_expression "*(code **)((int)pcVar6 + 0x20)" * (cast_expression "(code **)((int)pcVar6 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pcVar6 + 0x20)" ( (binary_expression "(int)pcVar6 + 0x20" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (if_statement "if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    printf((char *)(unaff_EBP + 0x67e12));\n  }" { (expression_statement "printf((char *)(unaff_EBP + 0x67e12));" (call_expression "printf((char *)(unaff_EBP + 0x67e12))" identifier (argument_list "((char *)(unaff_EBP + 0x67e12))" ( (cast_expression "(char *)(unaff_EBP + 0x67e12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x67e12)" ( (binary_expression "unaff_EBP + 0x67e12" identifier + number_literal) ))) ))) ;) }) (else_clause "else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }" else (compound_statement "{\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }" { (expression_statement "FUN_00022190();" (call_expression "FUN_00022190()" identifier (argument_list "()" ( ))) ;) (expression_statement "printf((char *)(unaff_EBP + 0x4ceb0));" (call_expression "printf((char *)(unaff_EBP + 0x4ceb0))" identifier (argument_list "((char *)(unaff_EBP + 0x4ceb0))" ( (cast_expression "(char *)(unaff_EBP + 0x4ceb0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ceb0)" ( (binary_expression "unaff_EBP + 0x4ceb0" identifier + number_literal) ))) ))) ;) }))) (expression_statement "local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);" (assignment_expression "local_c0 = (int *)(&DAT_0008e36b + unaff_EBP)" identifier = (cast_expression "(int *)(&DAT_0008e36b + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008e36b + unaff_EBP)" ( (binary_expression "&DAT_0008e36b + unaff_EBP" (pointer_expression "&DAT_0008e36b" & identifier) + identifier) )))) ;) (expression_statement "FUN_0006b5b0();" (call_expression "FUN_0006b5b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }" { (expression_statement "local_b0 = local_a4[9];" (assignment_expression "local_b0 = local_a4[9]" identifier = (subscript_expression "local_a4[9]" identifier [ number_literal ])) ;) (expression_statement "local_b4 = (code *)local_a4[8];" (assignment_expression "local_b4 = (code *)local_a4[8]" identifier = (cast_expression "(code *)local_a4[8]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_a4[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = local_3c;" (assignment_expression "uVar15 = local_3c" identifier = identifier) ;) (expression_statement "uVar18 = local_38;" (assignment_expression "uVar18 = local_38" identifier = identifier) ;) (labeled_statement "LAB_0002c050:\n    local_38 = uVar18;" statement_identifier : (expression_statement "local_38 = uVar18;" (assignment_expression "local_38 = uVar18" identifier = identifier) ;)) (expression_statement "local_3c = uVar15;" (assignment_expression "local_3c = uVar15" identifier = identifier) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar6 = local_b4;" (assignment_expression "pcVar6 = local_b4" identifier = identifier) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_84 = local_b4;" (assignment_expression "local_84 = local_b4" identifier = identifier) ;) (expression_statement "local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);" (assignment_expression "local_bc = (code *)FUN_0001bf90(1,0,local_b4,0)" identifier = (cast_expression "(code *)FUN_0001bf90(1,0,local_b4,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(1,0,local_b4,0)" identifier (argument_list "(1,0,local_b4,0)" ( number_literal , number_literal , identifier , number_literal ))))) ;) (expression_statement "piVar8 = local_c0;" (assignment_expression "piVar8 = local_c0" identifier = identifier) ;) (if_statement "if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }" if (parenthesized_expression "(local_bc != (code *)0x0)" ( (binary_expression "local_bc != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }" { (expression_statement "local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);" (assignment_expression "local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3)" identifier = (binary_expression "(uint)pcVar6 / (uint)(*local_c0 * 3)" (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier) / (call_expression "(uint)(*local_c0 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*local_c0 * 3)" ( (binary_expression "*local_c0 * 3" (pointer_expression "*local_c0" * identifier) * number_literal) ))))) ;) (expression_statement "local_b4 = pcVar6;" (assignment_expression "local_b4 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar6 = (code *)FUN_0005db00();" (assignment_expression "pcVar6 = (code *)FUN_0005db00()" identifier = (cast_expression "(code *)FUN_0005db00()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005db00()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_ac = (code *)(&UNK_0008e39b + unaff_EBP);" (assignment_expression "local_ac = (code *)(&UNK_0008e39b + unaff_EBP)" identifier = (cast_expression "(code *)(&UNK_0008e39b + unaff_EBP)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0008e39b + unaff_EBP)" ( (binary_expression "&UNK_0008e39b + unaff_EBP" (pointer_expression "&UNK_0008e39b" & identifier) + identifier) )))) ;) (expression_statement "local_c4 = local_bc;" (assignment_expression "local_c4 = local_bc" identifier = identifier) ;) (expression_statement "local_54 = pcVar6;" (assignment_expression "local_54 = pcVar6" identifier = identifier) ;) (if_statement "if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }" if (parenthesized_expression "(!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc))" ( (unary_expression "!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)" ! (call_expression "CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)" identifier (argument_list "((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)" ( (call_expression "(uint)(local_b4 + *piVar8 * -3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b4 + *piVar8 * -3)" ( (binary_expression "local_b4 + *piVar8 * -3" identifier + (binary_expression "*piVar8 * -3" (pointer_expression "*piVar8" * identifier) * number_literal)) ))) , (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) )))) )) (compound_statement "{\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }" { (do_statement "do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));" do (compound_statement "{\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        }" { (expression_statement "pcVar11 = local_ac;" (assignment_expression "pcVar11 = local_ac" identifier = identifier) ;) (expression_statement "pcVar17 = local_c4;" (assignment_expression "pcVar17 = local_c4" identifier = identifier) ;) (expression_statement "*(undefined2 *)pcVar6 = 0;" (assignment_expression "*(undefined2 *)pcVar6 = 0" (pointer_expression "*(undefined2 *)pcVar6" * (cast_expression "(undefined2 *)pcVar6" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined2 *)(pcVar6 + 0xc) = 0;" (assignment_expression "*(undefined2 *)(pcVar6 + 0xc) = 0" (pointer_expression "*(undefined2 *)(pcVar6 + 0xc)" * (cast_expression "(undefined2 *)(pcVar6 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0xc)" ( (binary_expression "pcVar6 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(pcVar6 + 0x18) = 0;" (assignment_expression "*(undefined2 *)(pcVar6 + 0x18) = 0" (pointer_expression "*(undefined2 *)(pcVar6 + 0x18)" * (cast_expression "(undefined2 *)(pcVar6 + 0x18)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x18)" ( (binary_expression "pcVar6 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar29 = (**(code **)local_ac)();" (assignment_expression "uVar29 = (**(code **)local_ac)()" identifier = (call_expression "(**(code **)local_ac)()" (parenthesized_expression "(**(code **)local_ac)" ( (pointer_expression "**(code **)local_ac" * (pointer_expression "*(code **)local_ac" * (cast_expression "(code **)local_ac" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pcVar6 + 4) = uVar29;" (assignment_expression "*(undefined8 *)(pcVar6 + 4) = uVar29" (pointer_expression "*(undefined8 *)(pcVar6 + 4)" * (cast_expression "(undefined8 *)(pcVar6 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar12 = *local_c0;" (assignment_expression "iVar12 = *local_c0" identifier = (pointer_expression "*local_c0" * identifier)) ;) (expression_statement "uVar29 = (**(code **)pcVar11)();" (assignment_expression "uVar29 = (**(code **)pcVar11)()" identifier = (call_expression "(**(code **)pcVar11)()" (parenthesized_expression "(**(code **)pcVar11)" ( (pointer_expression "**(code **)pcVar11" * (pointer_expression "*(code **)pcVar11" * (cast_expression "(code **)pcVar11" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pcVar6 + 0x10) = uVar29;" (assignment_expression "*(undefined8 *)(pcVar6 + 0x10) = uVar29" (pointer_expression "*(undefined8 *)(pcVar6 + 0x10)" * (cast_expression "(undefined8 *)(pcVar6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x10)" ( (binary_expression "pcVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar22 = *local_c0;" (assignment_expression "iVar22 = *local_c0" identifier = (pointer_expression "*local_c0" * identifier)) ;) (expression_statement "lVar30 = (**(code **)pcVar11)();" (assignment_expression "lVar30 = (**(code **)pcVar11)()" identifier = (call_expression "(**(code **)pcVar11)()" (parenthesized_expression "(**(code **)pcVar11)" ( (pointer_expression "**(code **)pcVar11" * (pointer_expression "*(code **)pcVar11" * (cast_expression "(code **)pcVar11" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = *local_c0;" (assignment_expression "iVar4 = *local_c0" identifier = (pointer_expression "*local_c0" * identifier)) ;) (expression_statement "local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;" (assignment_expression "local_c4 = pcVar17 + iVar4 + iVar22 + iVar12" identifier = (binary_expression "pcVar17 + iVar4 + iVar22 + iVar12" (binary_expression "pcVar17 + iVar4 + iVar22" (binary_expression "pcVar17 + iVar4" identifier + identifier) + identifier) + identifier)) ;) (expression_statement "pcVar17 = pcVar6 + 4;" (assignment_expression "pcVar17 = pcVar6 + 4" identifier = (binary_expression "pcVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar15 = *(uint *)pcVar17;" (assignment_expression "uVar15 = *(uint *)pcVar17" identifier = (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;" (assignment_expression "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier)) ;) (expression_statement "*(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);" (assignment_expression "*(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c)" (pointer_expression "*(uint *)(pcVar6 + 8)" * (cast_expression "(uint *)(pcVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c)" (binary_expression "*(uint *)(pcVar6 + 8) + local_38" (pointer_expression "*(uint *)(pcVar6 + 8)" * (cast_expression "(uint *)(pcVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) + identifier) + (cast_expression "(uint)CARRY4(uVar15,local_3c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,local_3c)" identifier (argument_list "(uVar15,local_3c)" ( identifier , identifier )))))) ;) (expression_statement "pcVar17 = pcVar6 + 0x10;" (assignment_expression "pcVar17 = pcVar6 + 0x10" identifier = (binary_expression "pcVar6 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar15 = *(uint *)pcVar17;" (assignment_expression "uVar15 = *(uint *)pcVar17" identifier = (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;" (assignment_expression "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier)) ;) (expression_statement "*(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);" (assignment_expression "*(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c)" (pointer_expression "*(uint *)(pcVar6 + 0x14)" * (cast_expression "(uint *)(pcVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x14)" ( (binary_expression "pcVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c)" (binary_expression "*(uint *)(pcVar6 + 0x14) + local_38" (pointer_expression "*(uint *)(pcVar6 + 0x14)" * (cast_expression "(uint *)(pcVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x14)" ( (binary_expression "pcVar6 + 0x14" identifier + number_literal) )))) + identifier) + (cast_expression "(uint)CARRY4(uVar15,local_3c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,local_3c)" identifier (argument_list "(uVar15,local_3c)" ( identifier , identifier )))))) ;) (expression_statement "pcVar17 = pcVar6 + 0x1c;" (assignment_expression "pcVar17 = pcVar6 + 0x1c" identifier = (binary_expression "pcVar6 + 0x1c" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar6 + 0x24;" (assignment_expression "pcVar6 = pcVar6 + 0x24" identifier = (binary_expression "pcVar6 + 0x24" identifier + number_literal)) ;) (expression_statement "*(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);" (assignment_expression "*(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c)" (pointer_expression "*(longlong *)pcVar17" * (cast_expression "(longlong *)pcVar17" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "lVar30 + CONCAT44(local_38,local_3c)" identifier + (call_expression "CONCAT44(local_38,local_3c)" identifier (argument_list "(local_38,local_3c)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "(local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3))" ( (binary_expression "local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3)" identifier <= (binary_expression "local_bc + (int)(local_b4 + iVar4 * -3)" identifier + (cast_expression "(int)(local_b4 + iVar4 * -3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_b4 + iVar4 * -3)" ( (binary_expression "local_b4 + iVar4 * -3" identifier + (binary_expression "iVar4 * -3" identifier * number_literal)) ))))) )) ;) })) (expression_statement "free(local_bc);" (call_expression "free(local_bc)" identifier (argument_list "(local_bc)" ( identifier ))) ;) (expression_statement "local_8c = (code *)(unaff_EBP + 0x4cedf);" (assignment_expression "local_8c = (code *)(unaff_EBP + 0x4cedf)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4cedf)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cedf)" ( (binary_expression "unaff_EBP + 0x4cedf" identifier + number_literal) )))) ;) (expression_statement "puVar14 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = (code *)puVar14;" (assignment_expression "local_c4 = (code *)puVar14" identifier = (cast_expression "(code *)puVar14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }" if (parenthesized_expression "(puVar14 < puVar14 + uVar15 * 0x12)" ( (binary_expression "puVar14 < puVar14 + uVar15 * 0x12" identifier < (binary_expression "puVar14 + uVar15 * 0x12" identifier + (binary_expression "uVar15 * 0x12" identifier * number_literal))) )) (compound_statement "{\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }" { (do_statement "do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);" do (compound_statement "{\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        }" { (if_statement "if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }" if (parenthesized_expression "(((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12))" ( (binary_expression "((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)" (parenthesized_expression "((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15))" ( (binary_expression "(*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)" (parenthesized_expression "(*(uint *)((int)local_c4 + 4) == 4)" ( (binary_expression "*(uint *)((int)local_c4 + 4) == 4" (pointer_expression "*(uint *)((int)local_c4 + 4)" * (cast_expression "(uint *)((int)local_c4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 4)" ( (binary_expression "(int)local_c4 + 4" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(uint *)((int)local_c4 + 0x2c) < uVar15)" ( (binary_expression "*(uint *)((int)local_c4 + 0x2c) < uVar15" (pointer_expression "*(uint *)((int)local_c4 + 0x2c)" * (cast_expression "(uint *)((int)local_c4 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x2c)" ( (binary_expression "(int)local_c4 + 0x2c" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < identifier) ))) )) && (parenthesized_expression "(local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)" ( (binary_expression "local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12" identifier == (binary_expression "puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12" identifier + (binary_expression "*(uint *)((int)local_c4 + 0x2c) * 0x12" (pointer_expression "*(uint *)((int)local_c4 + 0x2c)" * (cast_expression "(uint *)((int)local_c4 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x2c)" ( (binary_expression "(int)local_c4 + 0x2c" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal))) ))) )) (compound_statement "{\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }" { (expression_statement "iVar12 = FUN_0001e360();" (assignment_expression "iVar12 = FUN_0001e360()" identifier = (call_expression "FUN_0001e360()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }" { (expression_statement "free(local_54);" (call_expression "free(local_54)" identifier (argument_list "(local_54)" ( identifier ))) ;) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0002c236;" goto statement_identifier ;) })) (expression_statement "local_a0 = local_60;" (assignment_expression "local_a0 = local_60" identifier = identifier) ;) (expression_statement "local_b4 = local_5c;" (assignment_expression "local_b4 = local_5c" identifier = identifier) ;) (expression_statement "local_bc = local_5c;" (assignment_expression "local_bc = local_5c" identifier = identifier) ;) (if_statement "if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }" if (parenthesized_expression "(local_5c < local_5c + (int)local_60 * 0x18)" ( (binary_expression "local_5c < local_5c + (int)local_60 * 0x18" identifier < (binary_expression "local_5c + (int)local_60 * 0x18" identifier + (binary_expression "(int)local_60 * 0x18" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) (compound_statement "{\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }" { (expression_statement "local_88 = (char **)(param_1 + 0x42);" (assignment_expression "local_88 = (char **)(param_1 + 0x42)" identifier = (cast_expression "(char **)(param_1 + 0x42)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x42)" ( (binary_expression "param_1 + 0x42" identifier + number_literal) )))) ;) (expression_statement "local_7c = (code **)(unaff_EBP + 0x5787f);" (assignment_expression "local_7c = (code **)(unaff_EBP + 0x5787f)" identifier = (cast_expression "(code **)(unaff_EBP + 0x5787f)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x5787f)" ( (binary_expression "unaff_EBP + 0x5787f" identifier + number_literal) )))) ;) (do_statement "do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);" do (compound_statement "{\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              }" { (expression_statement "piVar8 = local_34;" (assignment_expression "piVar8 = local_34" identifier = identifier) ;) (expression_statement "uVar15 = *(uint *)(local_bc + 0xc);" (assignment_expression "uVar15 = *(uint *)(local_bc + 0xc)" identifier = (pointer_expression "*(uint *)(local_bc + 0xc)" * (cast_expression "(uint *)(local_bc + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0xc)" ( (binary_expression "local_bc + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(local_bc + 8);" (assignment_expression "uVar18 = *(uint *)(local_bc + 8)" identifier = (pointer_expression "*(uint *)(local_bc + 8)" * (cast_expression "(uint *)(local_bc + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 8)" ( (binary_expression "local_bc + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }" if (parenthesized_expression "(*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0)" ( (binary_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0" (pointer_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP)" * (cast_expression "(int *)(&DAT_0008a8e7 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008a8e7 + unaff_EBP)" ( (binary_expression "&DAT_0008a8e7 + unaff_EBP" (pointer_expression "&DAT_0008a8e7" & identifier) + identifier) )))) == number_literal) )) (compound_statement "{\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }" { (expression_statement "local_9c = (void *)FUN_00021e40();" (assignment_expression "local_9c = (void *)FUN_00021e40()" identifier = (cast_expression "(void *)FUN_00021e40()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00021e40()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pcVar6 = (code *)FUN_00015c60();" (assignment_expression "pcVar6 = (code *)FUN_00015c60()" identifier = (cast_expression "(code *)FUN_00015c60()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00015c60()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_ac = (code *)(piVar8 + uVar15 * 7);" (assignment_expression "local_ac = (code *)(piVar8 + uVar15 * 7)" identifier = (cast_expression "(code *)(piVar8 + uVar15 * 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + uVar15 * 7)" ( (binary_expression "piVar8 + uVar15 * 7" identifier + (binary_expression "uVar15 * 7" identifier * number_literal)) )))) ;) (expression_statement "bVar25 = pcVar6 == (code *)0x0;" (assignment_expression "bVar25 = pcVar6 == (code *)0x0" identifier = (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar25) goto LAB_0002c3b9;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_0002c3b9;" goto statement_identifier ;)) (labeled_statement "LAB_0002c4e0:\n                  dcgettext();" statement_identifier : (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0002c4fb:\n                  warn();" statement_identifier : (expression_statement "warn();" (call_expression "warn()" identifier (argument_list "()" ( ))) ;)) (expression_statement "local_b4 = local_5c;" (assignment_expression "local_b4 = local_5c" identifier = identifier) ;) (expression_statement "local_a0 = local_60;" (assignment_expression "local_a0 = local_60" identifier = identifier) ;) }) (else_clause "else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }" else (compound_statement "{\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }" { (expression_statement "local_9c = (void *)(uVar18 & 0xff);" (assignment_expression "local_9c = (void *)(uVar18 & 0xff)" identifier = (cast_expression "(void *)(uVar18 & 0xff)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar18 & 0xff)" ( (binary_expression "uVar18 & 0xff" identifier & number_literal) )))) ;) (expression_statement "pcVar6 = (code *)FUN_00015c60();" (assignment_expression "pcVar6 = (code *)FUN_00015c60()" identifier = (cast_expression "(code *)FUN_00015c60()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00015c60()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);" (assignment_expression "local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7)" identifier = (cast_expression "(code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7)" ( (binary_expression "piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7" identifier + (binary_expression "(uVar18 >> 8 | uVar15 << 0x18) * 7" (parenthesized_expression "(uVar18 >> 8 | uVar15 << 0x18)" ( (binary_expression "uVar18 >> 8 | uVar15 << 0x18" (binary_expression "uVar18 >> 8" identifier >> number_literal) | (binary_expression "uVar15 << 0x18" identifier << number_literal)) )) * number_literal)) )))) ;) (expression_statement "bVar25 = pcVar6 == (code *)0x0;" (assignment_expression "bVar25 = pcVar6 == (code *)0x0" identifier = (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar25) goto LAB_0002c4e0;" if (parenthesized_expression "(bVar25)" ( identifier )) (goto_statement "goto LAB_0002c4e0;" goto statement_identifier ;)) (labeled_statement "LAB_0002c3b9:\n                  bVar27 = false;" statement_identifier : (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;)) (expression_statement "iVar12 = 0xd;" (assignment_expression "iVar12 = 0xd" identifier = number_literal) ;) (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar11 = local_8c;" (assignment_expression "pcVar11 = local_8c" identifier = identifier) ;) (do_statement "do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);" do (compound_statement "{\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar27 = (byte)*pcVar17 < (byte)*pcVar11" identifier = (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar25 = *pcVar17 == *pcVar11;" (assignment_expression "bVar25 = *pcVar17 == *pcVar11" identifier = (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" * identifier) == (pointer_expression "*pcVar11" * identifier))) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" if (parenthesized_expression "((!bVar27 && !bVar25) != bVar27)" ( (binary_expression "(!bVar27 && !bVar25) != bVar27" (parenthesized_expression "(!bVar27 && !bVar25)" ( (binary_expression "!bVar27 && !bVar25" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) (compound_statement "{\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" { (expression_statement "local_b4 = pcVar6;" (assignment_expression "local_b4 = pcVar6" identifier = identifier) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002c4fb;" goto statement_identifier ;) })) (expression_statement "local_9c = *(void **)local_bc;" (assignment_expression "local_9c = *(void **)local_bc" identifier = (pointer_expression "*(void **)local_bc" * (cast_expression "(void **)local_bc" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_98 = *(uint *)(local_bc + 4);" (assignment_expression "local_98 = *(uint *)(local_bc + 4)" identifier = (pointer_expression "*(uint *)(local_bc + 4)" * (cast_expression "(uint *)(local_bc + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 4)" ( (binary_expression "local_bc + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = FUN_0006b5b0();" (assignment_expression "uVar15 = FUN_0006b5b0()" identifier = (call_expression "FUN_0006b5b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" if (parenthesized_expression "(local_50 <= uVar15)" ( (binary_expression "local_50 <= uVar15" identifier <= identifier) )) (compound_statement "{\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" { (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002c4fb;" goto statement_identifier ;) })) (expression_statement "FUN_0006b5b0();" (call_expression "FUN_0006b5b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar30 = FUN_0006b6c0();" (assignment_expression "lVar30 = FUN_0006b6c0()" identifier = (call_expression "FUN_0006b6c0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar6 = local_54 + uVar15 * 0x24;" (assignment_expression "pcVar6 = local_54 + uVar15 * 0x24" identifier = (binary_expression "local_54 + uVar15 * 0x24" identifier + (binary_expression "uVar15 * 0x24" identifier * number_literal))) ;) (expression_statement "pcVar17 = *(code **)(local_ac + 0x18);" (assignment_expression "pcVar17 = *(code **)(local_ac + 0x18)" identifier = (pointer_expression "*(code **)(local_ac + 0x18)" * (cast_expression "(code **)(local_ac + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_ac + 0x18)" ( (binary_expression "local_ac + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;" (assignment_expression "iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac" identifier = (binary_expression "*(uint *)(local_bc + 0x10) + *(uint *)local_ac" (pointer_expression "*(uint *)(local_bc + 0x10)" * (cast_expression "(uint *)(local_bc + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x10)" ( (binary_expression "local_bc + 0x10" identifier + number_literal) )))) + (pointer_expression "*(uint *)local_ac" * (cast_expression "(uint *)local_ac" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);" (assignment_expression "iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" identifier = (binary_expression "*(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" (binary_expression "*(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4)" (pointer_expression "*(uint *)(local_bc + 0x14)" * (cast_expression "(uint *)(local_bc + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x14)" ( (binary_expression "local_bc + 0x14" identifier + number_literal) )))) + (pointer_expression "*(uint *)(local_ac + 4)" * (cast_expression "(uint *)(local_ac + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ac + 4)" ( (binary_expression "local_ac + 4" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" identifier (argument_list "(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" ( (pointer_expression "*(uint *)(local_bc + 0x10)" * (cast_expression "(uint *)(local_bc + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x10)" ( (binary_expression "local_bc + 0x10" identifier + number_literal) )))) , (pointer_expression "*(uint *)local_ac" * (cast_expression "(uint *)local_ac" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))))) ;) (expression_statement "local_ac._0_2_ = SUB42(pcVar17,0);" (assignment_expression "local_ac._0_2_ = SUB42(pcVar17,0)" (field_expression "local_ac._0_2_" identifier . field_identifier) = (call_expression "SUB42(pcVar17,0)" identifier (argument_list "(pcVar17,0)" ( identifier , number_literal )))) ;) (expression_statement "local_ac = pcVar17;" (assignment_expression "local_ac = pcVar17" identifier = identifier) ;) (if_statement "if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" if (parenthesized_expression "(lVar30 == 1)" ( (binary_expression "lVar30 == 1" identifier == number_literal) )) (compound_statement "{\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }" { (expression_statement "*(int *)(pcVar6 + 0x10) = iVar12;" (assignment_expression "*(int *)(pcVar6 + 0x10) = iVar12" (pointer_expression "*(int *)(pcVar6 + 0x10)" * (cast_expression "(int *)(pcVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x10)" ( (binary_expression "pcVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pcVar6 + 0x14) = iVar22;" (assignment_expression "*(int *)(pcVar6 + 0x14) = iVar22" (pointer_expression "*(int *)(pcVar6 + 0x14)" * (cast_expression "(int *)(pcVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x14)" ( (binary_expression "pcVar6 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;" (assignment_expression "*(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_" (pointer_expression "*(undefined2 *)(pcVar6 + 0xc)" * (cast_expression "(undefined2 *)(pcVar6 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0xc)" ( (binary_expression "pcVar6 + 0xc" identifier + number_literal) )))) = (field_expression "local_ac._0_2_" identifier . field_identifier)) ;) }) (else_clause "else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" else (if_statement "if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" if (parenthesized_expression "(lVar30 == 2)" ( (binary_expression "lVar30 == 2" identifier == number_literal) )) (compound_statement "{\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }" { (expression_statement "*(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;" (assignment_expression "*(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_" (pointer_expression "*(undefined2 *)(pcVar6 + 0x18)" * (cast_expression "(undefined2 *)(pcVar6 + 0x18)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x18)" ( (binary_expression "pcVar6 + 0x18" identifier + number_literal) )))) = (field_expression "local_ac._0_2_" identifier . field_identifier)) ;) (expression_statement "*(int *)(pcVar6 + 0x1c) = iVar12;" (assignment_expression "*(int *)(pcVar6 + 0x1c) = iVar12" (pointer_expression "*(int *)(pcVar6 + 0x1c)" * (cast_expression "(int *)(pcVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x1c)" ( (binary_expression "pcVar6 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pcVar6 + 0x20) = iVar22;" (assignment_expression "*(int *)(pcVar6 + 0x20) = iVar22" (pointer_expression "*(int *)(pcVar6 + 0x20)" * (cast_expression "(int *)(pcVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x20)" ( (binary_expression "pcVar6 + 0x20" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" else (compound_statement "{\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" { (expression_statement "*(undefined2 *)pcVar6 = local_ac._0_2_;" (assignment_expression "*(undefined2 *)pcVar6 = local_ac._0_2_" (pointer_expression "*(undefined2 *)pcVar6" * (cast_expression "(undefined2 *)pcVar6" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_ac._0_2_" identifier . field_identifier)) ;) (expression_statement "*(int *)(pcVar6 + 4) = iVar12;" (assignment_expression "*(int *)(pcVar6 + 4) = iVar12" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pcVar6 + 8) = iVar22;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar22" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) }))))) }))) (expression_statement "local_bc = local_bc + 0x18;" (assignment_expression "local_bc = local_bc + 0x18" identifier = (binary_expression "local_bc + 0x18" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_bc < local_b4 + (int)local_a0 * 0x18)" ( (binary_expression "local_bc < local_b4 + (int)local_a0 * 0x18" identifier < (binary_expression "local_b4 + (int)local_a0 * 0x18" identifier + (binary_expression "(int)local_a0 * 0x18" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) ;) })) (expression_statement "free(local_b4);" (call_expression "free(local_b4)" identifier (argument_list "(local_b4)" ( identifier ))) ;) (expression_statement "puVar14 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) })) (expression_statement "local_c4 = (code *)((int)local_c4 + 0x48);" (assignment_expression "local_c4 = (code *)((int)local_c4 + 0x48)" identifier = (cast_expression "(code *)((int)local_c4 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x48)" ( (binary_expression "(int)local_c4 + 0x48" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_c4 < puVar14 + uVar15 * 0x12)" ( (binary_expression "local_c4 < puVar14 + uVar15 * 0x12" identifier < (binary_expression "puVar14 + uVar15 * 0x12" identifier + (binary_expression "uVar15 * 0x12" identifier * number_literal))) )) ;) })) (if_statement "if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }" if (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (compound_statement "{\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }" { (expression_statement "local_2c = (void *)FUN_0006b190();" (assignment_expression "local_2c = (void *)FUN_0006b190()" identifier = (cast_expression "(void *)FUN_0006b190()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0006b190()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" identifier = identifier) ;) (if_statement "if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }" if (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) )) (compound_statement "{\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }" { (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "piVar8 = local_34;" (assignment_expression "piVar8 = local_34" identifier = identifier) ;) (do_statement "do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);" do (compound_statement "{\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          }" { (if_statement "if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }" if (parenthesized_expression "((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2))" ( (binary_expression "(*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)" (parenthesized_expression "(*piVar8 != 0 || piVar8[1] != 0)" ( (binary_expression "*piVar8 != 0 || piVar8[1] != 0" (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal) || (binary_expression "piVar8[1] != 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) != number_literal)) )) && (parenthesized_expression "((*(byte *)(piVar8 + 5) & 0xf) == 2)" ( (binary_expression "(*(byte *)(piVar8 + 5) & 0xf) == 2" (parenthesized_expression "(*(byte *)(piVar8 + 5) & 0xf)" ( (binary_expression "*(byte *)(piVar8 + 5) & 0xf" (pointer_expression "*(byte *)(piVar8 + 5)" * (cast_expression "(byte *)(piVar8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 5)" ( (binary_expression "piVar8 + 5" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }" { (expression_statement "iVar12 = local_28 * 0x1c;" (assignment_expression "iVar12 = local_28 * 0x1c" identifier = (binary_expression "local_28 * 0x1c" identifier * number_literal)) ;) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "piVar20 = (int *)(iVar12 + (int)local_2c);" (assignment_expression "piVar20 = (int *)(iVar12 + (int)local_2c)" identifier = (cast_expression "(int *)(iVar12 + (int)local_2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + (int)local_2c)" ( (binary_expression "iVar12 + (int)local_2c" identifier + (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*piVar20 = *piVar8;" (assignment_expression "*piVar20 = *piVar8" (pointer_expression "*piVar20" * identifier) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar20[1] = piVar8[1];" (assignment_expression "piVar20[1] = piVar8[1]" (subscript_expression "piVar20[1]" identifier [ number_literal ]) = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (expression_statement "piVar20[2] = piVar8[2];" (assignment_expression "piVar20[2] = piVar8[2]" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = (subscript_expression "piVar8[2]" identifier [ number_literal ])) ;) (expression_statement "piVar20[3] = piVar8[3];" (assignment_expression "piVar20[3] = piVar8[3]" (subscript_expression "piVar20[3]" identifier [ number_literal ]) = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (expression_statement "piVar20[4] = piVar8[4];" (assignment_expression "piVar20[4] = piVar8[4]" (subscript_expression "piVar20[4]" identifier [ number_literal ]) = (subscript_expression "piVar8[4]" identifier [ number_literal ])) ;) (expression_statement "piVar20[5] = piVar8[5];" (assignment_expression "piVar20[5] = piVar8[5]" (subscript_expression "piVar20[5]" identifier [ number_literal ]) = (subscript_expression "piVar8[5]" identifier [ number_literal ])) ;) (expression_statement "piVar20[6] = piVar8[6];" (assignment_expression "piVar20[6] = piVar8[6]" (subscript_expression "piVar20[6]" identifier [ number_literal ]) = (subscript_expression "piVar8[6]" identifier [ number_literal ])) ;) })) (expression_statement "piVar8 = piVar8 + 7;" (assignment_expression "piVar8 = piVar8 + 7" identifier = (binary_expression "piVar8 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_34 + local_30 * 7 != piVar8)" ( (binary_expression "local_34 + local_30 * 7 != piVar8" (binary_expression "local_34 + local_30 * 7" identifier + (binary_expression "local_30 * 7" identifier * number_literal)) != identifier) )) ;) })) (expression_statement "qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));" (call_expression "qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d))" identifier (argument_list "(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d))" ( identifier , identifier , number_literal , (call_expression "(__compar_fn_t)(unaff_EBP + -0xfc3d)" (parenthesized_expression "(__compar_fn_t)" ( identifier )) (argument_list "(unaff_EBP + -0xfc3d)" ( (binary_expression "unaff_EBP + -0xfc3d" identifier + number_literal) ))) ))) ;) (if_statement "if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }" if (parenthesized_expression "(local_54 < local_54 + local_50 * 0x24)" ( (binary_expression "local_54 < local_54 + local_50 * 0x24" identifier < (binary_expression "local_54 + local_50 * 0x24" identifier + (binary_expression "local_50 * 0x24" identifier * number_literal))) )) (compound_statement "{\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }" { (expression_statement "local_88 = &local_60;" (assignment_expression "local_88 = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;) (expression_statement "local_7c = &local_5c;" (assignment_expression "local_7c = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);" (assignment_expression "local_c4 = *(code **)(&DAT_0008859b + unaff_EBP)" identifier = (pointer_expression "*(code **)(&DAT_0008859b + unaff_EBP)" * (cast_expression "(code **)(&DAT_0008859b + unaff_EBP)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0008859b + unaff_EBP)" ( (binary_expression "&DAT_0008859b + unaff_EBP" (pointer_expression "&DAT_0008859b" & identifier) + identifier) ))))) ;) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4ceed);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4ceed)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4ceed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ceed)" ( (binary_expression "unaff_EBP + 0x4ceed" identifier + number_literal) )))) ;) (expression_statement "local_9c = (void *)(unaff_EBP + 0x4cef5);" (assignment_expression "local_9c = (void *)(unaff_EBP + 0x4cef5)" identifier = (cast_expression "(void *)(unaff_EBP + 0x4cef5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cef5)" ( (binary_expression "unaff_EBP + 0x4cef5" identifier + number_literal) )))) ;) (expression_statement "local_8c = (code *)(unaff_EBP + 0x4cefa);" (assignment_expression "local_8c = (code *)(unaff_EBP + 0x4cefa)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4cefa)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cefa)" ( (binary_expression "unaff_EBP + 0x4cefa" identifier + number_literal) )))) ;) (expression_statement "local_74 = (char *)(unaff_EBP + 0x4cef0);" (assignment_expression "local_74 = (char *)(unaff_EBP + 0x4cef0)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4cef0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cef0)" ( (binary_expression "unaff_EBP + 0x4cef0" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = local_54;" (assignment_expression "pcVar6 = local_54" identifier = identifier) ;) (do_statement "do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);" do (compound_statement "{\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          }" { (expression_statement "FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));" (call_expression "FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4))" identifier (argument_list "(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4))" ( identifier , identifier , (pointer_expression "*(undefined2 *)pcVar6" * (cast_expression "(undefined2 *)pcVar6" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "*(uint *)(pcVar6 + 4)" * (cast_expression "(uint *)(pcVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar17 = local_c4;" (assignment_expression "pcVar17 = local_c4" identifier = identifier) ;) (expression_statement "fwrite(local_a0,1,2,*(FILE **)local_c4);" (call_expression "fwrite(local_a0,1,2,*(FILE **)local_c4)" identifier (argument_list "(local_a0,1,2,*(FILE **)local_c4)" ( identifier , number_literal , number_literal , (pointer_expression "*(FILE **)local_c4" * (cast_expression "(FILE **)local_c4" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (if_statement "if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }" if (parenthesized_expression "((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0))" ( (binary_expression "(local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)" (parenthesized_expression "(local_60 != (char *)0x0)" ( (binary_expression "local_60 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)" ( (comma_expression "fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0" (call_expression "fputs(local_60,*(FILE **)pcVar17)" identifier (argument_list "(local_60,*(FILE **)pcVar17)" ( identifier , (pointer_expression "*(FILE **)pcVar17" * (cast_expression "(FILE **)pcVar17" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) , (binary_expression "local_5c != (code *)0x0 || local_58 != 0" (binary_expression "local_5c != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_58 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n              printf(local_74);\n            }" { (expression_statement "printf(local_74);" (call_expression "printf(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;) })) (expression_statement "pcVar17 = local_c4;" (assignment_expression "pcVar17 = local_c4" identifier = identifier) ;) (expression_statement "fwrite(local_9c,1,4,*(FILE **)local_c4);" (call_expression "fwrite(local_9c,1,4,*(FILE **)local_c4)" identifier (argument_list "(local_9c,1,4,*(FILE **)local_c4)" ( identifier , number_literal , number_literal , (pointer_expression "*(FILE **)local_c4" * (cast_expression "(FILE **)local_c4" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_0001e910();" (call_expression "FUN_0001e910()" identifier (argument_list "()" ( ))) ;) (expression_statement "fputc(0x2d,*(FILE **)pcVar17);" (call_expression "fputc(0x2d,*(FILE **)pcVar17)" identifier (argument_list "(0x2d,*(FILE **)pcVar17)" ( number_literal , (pointer_expression "*(FILE **)pcVar17" * (cast_expression "(FILE **)pcVar17" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_0001e910();" (call_expression "FUN_0001e910()" identifier (argument_list "()" ( ))) ;) (expression_statement "printf((char *)local_8c);" (call_expression "printf((char *)local_8c)" identifier (argument_list "((char *)local_8c)" ( (cast_expression "(char *)local_8c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }" if (parenthesized_expression "(local_4c != (void *)0x0)" ( (binary_expression "local_4c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }" { (expression_statement "uVar1 = *(ushort *)(pcVar6 + 0x18);" (assignment_expression "uVar1 = *(ushort *)(pcVar6 + 0x18)" identifier = (pointer_expression "*(ushort *)(pcVar6 + 0x18)" * (cast_expression "(ushort *)(pcVar6 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x18)" ( (binary_expression "pcVar6 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = *(code **)(pcVar6 + 0x1c);" (assignment_expression "local_b4 = *(code **)(pcVar6 + 0x1c)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x1c)" * (cast_expression "(code **)(pcVar6 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x1c)" ( (binary_expression "pcVar6 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_a8 = local_40;" (assignment_expression "local_a8 = local_40" identifier = identifier) ;) (expression_statement "local_b0 = *(uint *)(pcVar6 + 0x20);" (assignment_expression "local_b0 = *(uint *)(pcVar6 + 0x20)" identifier = (pointer_expression "*(uint *)(pcVar6 + 0x20)" * (cast_expression "(uint *)(pcVar6 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x20)" ( (binary_expression "pcVar6 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);" (assignment_expression "local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1)" identifier = (cast_expression "(uint *)CONCAT22(local_a4._2_2_,uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(local_a4._2_2_,uVar1)" identifier (argument_list "(local_a4._2_2_,uVar1)" ( (field_expression "local_a4._2_2_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_ac = local_44;" (assignment_expression "local_ac = local_44" identifier = identifier) ;) (expression_statement "pcVar17 = local_b4 + -(int)local_44;" (assignment_expression "pcVar17 = local_b4 + -(int)local_44" identifier = (binary_expression "local_b4 + -(int)local_44" identifier + (unary_expression "-(int)local_44" - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);" (assignment_expression "uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44)" identifier = (binary_expression "(local_b0 - local_40) - (uint)(local_b4 < local_44)" (parenthesized_expression "(local_b0 - local_40)" ( (binary_expression "local_b0 - local_40" identifier - identifier) )) - (call_expression "(uint)(local_b4 < local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b4 < local_44)" ( (binary_expression "local_b4 < local_44" identifier < identifier) ))))) ;) (expression_statement "local_bc = local_48;" (assignment_expression "local_bc = local_48" identifier = identifier) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (if_statement "if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }" { (expression_statement "pcVar11 = local_b4;" (assignment_expression "pcVar11 = local_b4" identifier = identifier) ;) (if_statement "if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }" if (parenthesized_expression "(uVar15 < (pcVar17 < local_48))" ( (binary_expression "uVar15 < (pcVar17 < local_48)" identifier < (parenthesized_expression "(pcVar17 < local_48)" ( (binary_expression "pcVar17 < local_48" identifier < identifier) ))) )) (compound_statement "{\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }" { (labeled_statement "LAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));" statement_identifier : (expression_statement "local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));" (assignment_expression "local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44))" identifier = (cast_expression "(code *)((int)local_4c + ((int)pcVar11 - (int)local_44))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_4c + ((int)pcVar11 - (int)local_44))" ( (binary_expression "(int)local_4c + ((int)pcVar11 - (int)local_44)" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pcVar11 - (int)local_44)" ( (binary_expression "(int)pcVar11 - (int)local_44" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;)) (expression_statement "uVar31 = (*(code *)*local_78)();" (assignment_expression "uVar31 = (*(code *)*local_78)()" identifier = (call_expression "(*(code *)*local_78)()" (parenthesized_expression "(*(code *)*local_78)" ( (pointer_expression "*(code *)*local_78" * (cast_expression "(code *)*local_78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_78" * identifier))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar15 = (uint)(uVar31 >> 0x20);" (assignment_expression "uVar15 = (uint)(uVar31 >> 0x20)" identifier = (call_expression "(uint)(uVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 >> 0x20)" ( (binary_expression "uVar31 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_a4 = (uint *)uVar31;" (assignment_expression "local_a4 = (uint *)uVar31" identifier = (cast_expression "(uint *)uVar31" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar10 = &UNK_00050218 + unaff_EBP;" (assignment_expression "puVar10 = &UNK_00050218 + unaff_EBP" identifier = (binary_expression "&UNK_00050218 + unaff_EBP" (pointer_expression "&UNK_00050218" & identifier) + identifier)) ;) (if_statement "if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }" if (parenthesized_expression "((uVar31 & 0x100000000) != 0)" ( (binary_expression "(uVar31 & 0x100000000) != 0" (parenthesized_expression "(uVar31 & 0x100000000)" ( (binary_expression "uVar31 & 0x100000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }" { (expression_statement "puVar10 = (undefined *)(unaff_EBP + 0x4ce56);" (assignment_expression "puVar10 = (undefined *)(unaff_EBP + 0x4ce56)" identifier = (cast_expression "(undefined *)(unaff_EBP + 0x4ce56)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ce56)" ( (binary_expression "unaff_EBP + 0x4ce56" identifier + number_literal) )))) ;) })) (expression_statement "uVar18 = uVar15 >> 0x10;" (assignment_expression "uVar18 = uVar15 >> 0x10" identifier = (binary_expression "uVar15 >> 0x10" identifier >> number_literal)) ;) (expression_statement "printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);" (call_expression "printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10)" identifier (argument_list "((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10)" ( (cast_expression "(char *)(unaff_EBP + 0x578d3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x578d3)" ( (binary_expression "unaff_EBP + 0x578d3" identifier + number_literal) ))) , identifier , (binary_expression "uVar15 & 0xffff" identifier & number_literal) , identifier ))) ;) (if_statement "if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }" if (parenthesized_expression "(uVar18 == 1)" ( (binary_expression "uVar18 == 1" identifier == number_literal) )) (compound_statement "{\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "pcVar17 = local_48 + (int)local_4c;" (assignment_expression "pcVar17 = local_48 + (int)local_4c" identifier = (binary_expression "local_48 + (int)local_4c" identifier + (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }" if (parenthesized_expression "(local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c)" ( (binary_expression "local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c" (binary_expression "local_bc + (int)local_a4 * *local_c0 + 8" (binary_expression "local_bc + (int)local_a4 * *local_c0" identifier + (binary_expression "(int)local_a4 * *local_c0" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) * (pointer_expression "*local_c0" * identifier))) + number_literal) < (binary_expression "local_48 + (int)local_4c" identifier + (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }" { (expression_statement "pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;" (assignment_expression "pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8" identifier = (binary_expression "local_bc + (int)local_a4 * *local_c0 + 8" (binary_expression "local_bc + (int)local_a4 * *local_c0" identifier + (binary_expression "(int)local_a4 * *local_c0" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) * (pointer_expression "*local_c0" * identifier))) + number_literal)) ;) })) (expression_statement "pcVar11 = local_bc + 8;" (assignment_expression "pcVar11 = local_bc + 8" identifier = (binary_expression "local_bc + 8" identifier + number_literal)) ;) (while_statement "while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }" while (parenthesized_expression "(pcVar11 < pcVar17)" ( (binary_expression "pcVar11 < pcVar17" identifier < identifier) )) (compound_statement "{\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }" { (expression_statement "local_bc = pcVar6;" (assignment_expression "local_bc = pcVar6" identifier = identifier) ;) (expression_statement "pcVar11 = (code *)FUN_0004c6d0();" (assignment_expression "pcVar11 = (code *)FUN_0004c6d0()" identifier = (cast_expression "(code *)FUN_0004c6d0()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004c6d0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pcVar6 = local_bc;" (assignment_expression "pcVar6 = local_bc" identifier = identifier) ;) })) }) (else_clause "else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }" else (compound_statement "{\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }" { (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0002cbe7;" goto statement_identifier ;) })) }) (else_clause "else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }" else (compound_statement "{\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }" { (expression_statement "iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);" (assignment_expression "iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c)" identifier = (binary_expression "(uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c)" (binary_expression "(uint)uVar1 * 0x48" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))))) ;) (expression_statement "uVar18 = *(uint *)(iVar12 + 0x10);" (assignment_expression "uVar18 = *(uint *)(iVar12 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x10)" * (cast_expression "(uint *)(iVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }" if (parenthesized_expression "(uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48))" ( (binary_expression "uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)" (binary_expression "uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18)" (binary_expression "uVar15 + *(int *)(iVar12 + 0x14)" identifier + (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)pcVar17,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)pcVar17,uVar18)" identifier (argument_list "((uint)pcVar17,uVar18)" ( (cast_expression "(uint)pcVar17" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) < (call_expression "(uint)(pcVar17 + uVar18 < local_48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar17 + uVar18 < local_48)" ( (binary_expression "pcVar17 + uVar18 < local_48" (binary_expression "pcVar17 + uVar18" identifier + identifier) < identifier) )))) )) (compound_statement "{\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }" { (expression_statement "pcVar11 = local_b4 + uVar18;" (assignment_expression "pcVar11 = local_b4 + uVar18" identifier = (binary_expression "local_b4 + uVar18" identifier + identifier)) ;) (goto_statement "goto LAB_0002cb5e;" goto statement_identifier ;) })) }))) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "warn();" (call_expression "warn()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;" statement_identifier : (expression_statement "pcVar6 = pcVar6 + 0x24;" (assignment_expression "pcVar6 = pcVar6 + 0x24" identifier = (binary_expression "pcVar6 + 0x24" identifier + number_literal)) ;)) }) while (parenthesized_expression "(pcVar6 < local_54 + local_50 * 0x24)" ( (binary_expression "pcVar6 < local_54 + local_50 * 0x24" identifier < (binary_expression "local_54 + local_50 * 0x24" identifier + (binary_expression "local_50 * 0x24" identifier * number_literal))) )) ;) })) (expression_statement "free(local_2c);" (call_expression "free(local_2c)" identifier (argument_list "(local_2c)" ( identifier ))) ;) })) })) }) (else_clause "else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }" else (compound_statement "{\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }" { (expression_statement "puVar14 = *(uint **)(param_1 + 0x60);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x60)" identifier = (pointer_expression "*(uint **)(param_1 + 0x60)" * (cast_expression "(uint **)(param_1 + 0x60)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }" if (parenthesized_expression "(puVar14 != (uint *)0x0)" ( (binary_expression "puVar14 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }" { (labeled_statement "LAB_0002bfdd:\n      local_b0 = local_a4[9];" statement_identifier : (expression_statement "local_b0 = local_a4[9];" (assignment_expression "local_b0 = local_a4[9]" identifier = (subscript_expression "local_a4[9]" identifier [ number_literal ])) ;)) (expression_statement "local_b4 = (code *)local_a4[8];" (assignment_expression "local_b4 = (code *)local_a4[8]" identifier = (cast_expression "(code *)local_a4[8]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_a4[8]" identifier [ number_literal ]))) ;) (expression_statement "puVar13 = puVar14 + iVar12 * 0xe;" (assignment_expression "puVar13 = puVar14 + iVar12 * 0xe" identifier = (binary_expression "puVar14 + iVar12 * 0xe" identifier + (binary_expression "iVar12 * 0xe" identifier * number_literal))) ;) (for_statement "for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }" for ( ; (comma_expression "uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13" (assignment_expression "uVar15 = local_3c" identifier = identifier) , (comma_expression "uVar18 = local_38, puVar14 < puVar13" (assignment_expression "uVar18 = local_38" identifier = identifier) , (binary_expression "puVar14 < puVar13" identifier < identifier))) ; (assignment_expression "puVar14 = puVar14 + 0xe" identifier = (binary_expression "puVar14 + 0xe" identifier + number_literal)) ) (compound_statement "{\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }" { (expression_statement "local_c4 = (code *)puVar13;" (assignment_expression "local_c4 = (code *)puVar13" identifier = (cast_expression "(code *)puVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }" if (parenthesized_expression "(*puVar14 == 1)" ( (binary_expression "*puVar14 == 1" (pointer_expression "*puVar14" * identifier) == number_literal) )) (compound_statement "{\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }" { (expression_statement "uVar15 = puVar14[4];" (assignment_expression "uVar15 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar14[5];" (assignment_expression "uVar18 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = local_a4[5];" (assignment_expression "uVar21 = local_a4[5]" identifier = (subscript_expression "local_a4[5]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = local_a4[4];" (assignment_expression "uVar3 = local_a4[4]" identifier = (subscript_expression "local_a4[4]" identifier [ number_literal ])) ;) (if_statement "if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }" if (parenthesized_expression "(uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18)" ( (binary_expression "uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18" (binary_expression "uVar18 <= uVar21" identifier <= identifier) && (binary_expression "(uint)(uVar3 < uVar15) <= uVar21 - uVar18" (call_expression "(uint)(uVar3 < uVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar15)" ( (binary_expression "uVar3 < uVar15" identifier < identifier) ))) <= (binary_expression "uVar21 - uVar18" identifier - identifier))) )) (compound_statement "{\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }" { (expression_statement "local_bc = local_b4 + uVar3;" (assignment_expression "local_bc = local_b4 + uVar3" identifier = (binary_expression "local_b4 + uVar3" identifier + identifier)) ;) (expression_statement "local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);" (assignment_expression "local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4)" identifier = (binary_expression "uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4)" (binary_expression "uVar21 + local_b0" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar3,(uint)local_b4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar3,(uint)local_b4)" identifier (argument_list "(uVar3,(uint)local_b4)" ( identifier , (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);" (assignment_expression "uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10])" identifier = (binary_expression "uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10])" (binary_expression "uVar18 + puVar14[0xb]" identifier + (subscript_expression "puVar14[0xb]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar15,puVar14[10])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,puVar14[10])" identifier (argument_list "(uVar15,puVar14[10])" ( identifier , (subscript_expression "puVar14[10]" identifier [ number_literal ]) )))))) ;) (if_statement "if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;" if (parenthesized_expression "(local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8)" ( (binary_expression "local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8" (binary_expression "local_b8 <= uVar21" identifier <= identifier) && (binary_expression "(uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8" (call_expression "(uint)((code *)(uVar15 + puVar14[10]) < local_bc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((code *)(uVar15 + puVar14[10]) < local_bc)" ( (binary_expression "(code *)(uVar15 + puVar14[10]) < local_bc" (cast_expression "(code *)(uVar15 + puVar14[10])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + puVar14[10])" ( (binary_expression "uVar15 + puVar14[10]" identifier + (subscript_expression "puVar14[10]" identifier [ number_literal ])) ))) < identifier) ))) <= (binary_expression "uVar21 - local_b8" identifier - identifier))) )) (break_statement "break;" break ;)) })) })) })) (goto_statement "goto LAB_0002c050;" goto statement_identifier ;) })) (expression_statement "iVar12 = FUN_000269d0();" (assignment_expression "iVar12 = FUN_000269d0()" identifier = (call_expression "FUN_000269d0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }" { (expression_statement "puVar14 = *(uint **)(param_1 + 0x60);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x60)" identifier = (pointer_expression "*(uint **)(param_1 + 0x60)" * (cast_expression "(uint **)(param_1 + 0x60)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002bfdd;" goto statement_identifier ;) })) }))) (if_statement "if (local_54 != (code *)0x0) {\n    free(local_54);\n  }" if (parenthesized_expression "(local_54 != (code *)0x0)" ( (binary_expression "local_54 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_54);\n  }" { (expression_statement "free(local_54);" (call_expression "free(local_54)" identifier (argument_list "(local_54)" ( identifier ))) ;) })) (labeled_statement "LAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }" statement_identifier : (if_statement "if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }" if (parenthesized_expression "(local_4c != (void *)0x0)" ( (binary_expression "local_4c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_4c);\n  }" { (expression_statement "free(local_4c);" (call_expression "free(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = (void *)0x0;" (assignment_expression "local_4c = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x0002c26e:\n  local_90 = local_90 + -1;" statement_identifier : (expression_statement "local_90 = local_90 + -1;" (assignment_expression "local_90 = local_90 + -1" identifier = (binary_expression "local_90 + -1" identifier + number_literal)) ;)) (if_statement "if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;" if (parenthesized_expression "(local_90 == (byte *)0xffffffff)" ( (binary_expression "local_90 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002c274;" goto statement_identifier ;)) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002bbd0;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Unknown calling convention */\n\nbfd_boolean ia64_process_unwind(Filedata *filedata)\n\n{\n  bfd_vma *pbVar1;\n  int *piVar2;\n  ushort uVar3;\n  Elf_Internal_Shdr *pEVar4;\n  uint uVar5;\n  FILE *pFVar6;\n  undefined1 *puVar7;\n  absaddr addr;\n  absaddr *paVar8;\n  Filedata *filedata_1;\n  bfd_vma bVar9;\n  uchar uVar10;\n  uchar uVar11;\n  undefined *puVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  uchar *puVar15;\n  ia64_unw_table_entry *piVar16;\n  bfd_boolean bVar17;\n  char *pcVar18;\n  int iVar19;\n  uint uVar20;\n  Elf_Internal_Shdr *pEVar21;\n  group_list *pgVar22;\n  Elf_Internal_Sym *pEVar23;\n  uchar *puVar24;\n  Elf_Internal_Sym *pEVar25;\n  byte *pbVar26;\n  Elf_Internal_Phdr *pEVar27;\n  byte *pbVar28;\n  size_t sVar29;\n  ia64_unw_aux_info *piVar30;\n  uint uVar31;\n  byte *pbVar32;\n  Elf_Internal_Phdr *pEVar33;\n  uint uVar34;\n  uint uVar35;\n  int iVar36;\n  undefined1 uVar37;\n  bool bVar38;\n  undefined1 uVar39;\n  bool bVar40;\n  byte bVar41;\n  elf_vma eVar42;\n  longlong lVar43;\n  undefined *puVar44;\n  undefined4 uVar45;\n  FILE *__stream;\n  bfd_vma in_stack_ffffff34;\n  Elf_Internal_Shdr *local_c4;\n  uint local_c0;\n  void *local_bc;\n  byte *local_b4;\n  Elf_Internal_Sym *local_ac;\n  char *local_a0;\n  uint local_94;\n  int local_90;\n  bfd_boolean local_70;\n  int in_body;\n  char *procname;\n  bfd_vma offset;\n  ia64_unw_aux_info aux;\n  \n  bVar41 = 0;\n  local_70 = 1;\n  piVar30 = &aux;\n  for (iVar19 = 0xe; iVar19 != 0; iVar19 = iVar19 + -1) {\n    piVar30->table = (ia64_unw_table_entry *)0x0;\n    piVar30 = (ia64_unw_aux_info *)&piVar30->table_len;\n  }\n  uVar20 = (filedata->file_header).e_shnum;\n  pEVar21 = filedata->section_headers;\n  if (uVar20 != 0) {\n    local_c4 = (Elf_Internal_Shdr *)0x0;\n    uVar31 = 0;\n    do {\n      while (pEVar21->sh_type != 2) {\n        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));\nLAB_0002baa7:\n        uVar31 = uVar31 + 1;\n        pEVar21 = pEVar21 + 1;\n        if (uVar20 <= uVar31) goto LAB_0002bbaa;\n      }\n      if (uVar20 <= pEVar21->sh_link) goto LAB_0002baa7;\n      if (is_32bit_elf == 0) {\n        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      else {\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      uVar20 = pEVar21->sh_link;\n      pEVar4 = filedata->section_headers;\n      if (aux.strtab != (char *)0x0) {\n        pcVar13 = (char *)dcgettext();\n        error(pcVar13);\n        free(aux.strtab);\n        local_70 = 0;\n      }\n      pcVar13 = (char *)dcgettext();\n      aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13);\n      aux.strtab_size = 0;\n      if (aux.strtab != (char *)0x0) {\n        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;\n      }\n      uVar31 = uVar31 + 1;\n      pEVar21 = pEVar21 + 1;\n      uVar20 = (filedata->file_header).e_shnum;\n    } while (uVar31 < uVar20);\nLAB_0002bbaa:\n    local_94 = 0;\n    pEVar21 = local_c4;\n    if (local_c4 != (Elf_Internal_Shdr *)0x0) {\nLAB_0002bbd0:\n      local_90 = (int)pEVar21 + -1;\n      local_c4 = filedata->section_headers;\n      if (uVar20 <= local_94) {\nLAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");\n      }\n      pFVar6 = ((Filedata *)(local_c4 + local_94))->handle;\n      filedata_1 = (Filedata *)(local_c4 + local_94);\n      local_c0 = local_94;\n      while (pFVar6 != (FILE *)0x70000001) {\n        local_c0 = local_c0 + 1;\n        if (local_c0 == uVar20) goto LAB_0002bc1b;\n        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;\n        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n      }\n      local_94 = local_c0 + 1;\n      if ((filedata_1->file_size & 0x200) == 0) {\n        pcVar13 = filedata->string_table;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)) {\n        do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar13 = (char *)dcgettext();\n  printf(pcVar13);\nLAB_0002c274:\n  if (aux.symtab != (Elf_Internal_Sym *)0x0) {\n    free(aux.symtab);\n  }\n  if (aux.strtab != (char *)0x0) {\n    free(aux.strtab);\n  }\n  return local_70;\nLAB_0002be90:\n  uVar20 = (filedata->file_header).e_shnum;\nLAB_0002be9a:\n  if (local_c0 == uVar20) {\nLAB_0002bc78:\n    pcVar13 = (char *)dcgettext();\n    printf(pcVar13);\n    if (filedata->string_table == (char *)0x0) {\n      printf("%d");\n    }\n    else {\n      printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n      printf("\'%s\'");\n    }\n    if (pEVar21 == (Elf_Internal_Shdr *)0x1) goto LAB_0002c274;\n    goto LAB_0002bce7;\n  }\n  aux.info_addr._0_4_ = (uint)local_c4->sh_addr;\n  aux.info_addr._4_4_ = *(int *)((int)&local_c4->sh_addr + 4);\n  pcVar13 = (char *)dcgettext();\n  aux.info = (uchar *)get_data((void *)0x0,filedata,(ulong)local_c4->sh_offset,1,local_c4->sh_size,\n                               pcVar13);\n  aux.info_size = 0;\n  if (aux.info != (uchar *)0x0) {\n    aux.info_size = (ulong)local_c4->sh_size;\n  }\n  pcVar13 = (char *)dcgettext();\n  printf(pcVar13);\n  if (filedata->string_table == (char *)0x0) {\n    printf("%d");\n  }\n  else {\n    printable_section_name\n              ((Filedata *)&filedata->string_table,\n               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n    printf("\'%s\'");\n  }\n  __udivdi3();\n  pcVar13 = (char *)dcgettext();\n  printf(pcVar13);\n  aux.table_len = 0;\n  uVar20 = (filedata->file_header).e_phnum;\n  if (uVar20 == 0) {\n    local_b4 = (byte *)(filedata_1->file_header).e_entry;\n    uVar20 = (uint)aux.seg_base;\n    uVar31 = aux.seg_base._4_4_;\nLAB_0002c050:\n    aux.seg_base._4_4_ = uVar31;\n    aux.seg_base._0_4_ = uVar20;\n    pcVar13 = (char *)dcgettext();\n    puVar15 = (uchar *)get_data((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13);\n    if (puVar15 != (uchar *)0x0) {\n      aux.table_len = (uint)local_b4 / (eh_addr_size * 3);\n      piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24);\n      uVar20 = eh_addr_size;\n      local_c4 = (Elf_Internal_Shdr *)puVar15;\n      aux.table = piVar16;\n      if (!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)) {\n        do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);\n      }\n      free(puVar15);\n      pEVar21 = filedata->section_headers;\n      uVar20 = (filedata->file_header).e_shnum;\n      local_c4 = pEVar21;\n      if (pEVar21 < pEVar21 + uVar20) {\n        do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);\n      }\n      if (aux.table_len != 0) {\n        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);\n        aux.nfuns = aux.nsyms;\n        if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }\n        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);\n        puVar12 = PTR_stdout_000b3fd8;\n        if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }\n        free(aux.funtab);\n      }\n    }\n  }\n  else {\n    pEVar27 = filedata->program_headers;\n    if (pEVar27 != (Elf_Internal_Phdr *)0x0) {\nLAB_0002bfdd:\n      local_b4 = (byte *)(filedata_1->file_header).e_entry;\n      pEVar33 = pEVar27 + uVar20;\n      for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;\n          pEVar27 = pEVar27 + 1) {\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }\n      goto LAB_0002c050;\n    }\n    bVar17 = get_program_headers(filedata);\n    if (bVar17 != 0) {\n      pEVar27 = filedata->program_headers;\n      uVar20 = (filedata->file_header).e_phnum;\n      goto LAB_0002bfdd;\n    }\n  }\n  if (aux.table != (ia64_unw_table_entry *)0x0) {\n    free(aux.table);\n  }\nLAB_0002c236:\n  if (aux.info != (uchar *)0x0) {\n    free(aux.info);\n  }\n  aux.table = (ia64_unw_table_entry *)0x0;\n  aux.info = (uchar *)0x0;\n  if (local_90 == 0) goto LAB_0002c274;\nLAB_0002bce7:\n  uVar20 = (filedata->file_header).e_shnum;\n  pEVar21 = (Elf_Internal_Shdr *)local_90;\n  goto LAB_0002bbd0;\n}\n\n" comment comment (function_definition "bfd_boolean ia64_process_unwind(Filedata *filedata)\n\n{\n  bfd_vma *pbVar1;\n  int *piVar2;\n  ushort uVar3;\n  Elf_Internal_Shdr *pEVar4;\n  uint uVar5;\n  FILE *pFVar6;\n  undefined1 *puVar7;\n  absaddr addr;\n  absaddr *paVar8;\n  Filedata *filedata_1;\n  bfd_vma bVar9;\n  uchar uVar10;\n  uchar uVar11;\n  undefined *puVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  uchar *puVar15;\n  ia64_unw_table_entry *piVar16;\n  bfd_boolean bVar17;\n  char *pcVar18;\n  int iVar19;\n  uint uVar20;\n  Elf_Internal_Shdr *pEVar21;\n  group_list *pgVar22;\n  Elf_Internal_Sym *pEVar23;\n  uchar *puVar24;\n  Elf_Internal_Sym *pEVar25;\n  byte *pbVar26;\n  Elf_Internal_Phdr *pEVar27;\n  byte *pbVar28;\n  size_t sVar29;\n  ia64_unw_aux_info *piVar30;\n  uint uVar31;\n  byte *pbVar32;\n  Elf_Internal_Phdr *pEVar33;\n  uint uVar34;\n  uint uVar35;\n  int iVar36;\n  undefined1 uVar37;\n  bool bVar38;\n  undefined1 uVar39;\n  bool bVar40;\n  byte bVar41;\n  elf_vma eVar42;\n  longlong lVar43;\n  undefined *puVar44;\n  undefined4 uVar45;\n  FILE *__stream;\n  bfd_vma in_stack_ffffff34;\n  Elf_Internal_Shdr *local_c4;\n  uint local_c0;\n  void *local_bc;\n  byte *local_b4;\n  Elf_Internal_Sym *local_ac;\n  char *local_a0;\n  uint local_94;\n  int local_90;\n  bfd_boolean local_70;\n  int in_body;\n  char *procname;\n  bfd_vma offset;\n  ia64_unw_aux_info aux;\n  \n  bVar41 = 0;\n  local_70 = 1;\n  piVar30 = &aux;\n  for (iVar19 = 0xe; iVar19 != 0; iVar19 = iVar19 + -1) {\n    piVar30->table = (ia64_unw_table_entry *)0x0;\n    piVar30 = (ia64_unw_aux_info *)&piVar30->table_len;\n  }\n  uVar20 = (filedata->file_header).e_shnum;\n  pEVar21 = filedata->section_headers;\n  if (uVar20 != 0) {\n    local_c4 = (Elf_Internal_Shdr *)0x0;\n    uVar31 = 0;\n    do {\n      while (pEVar21->sh_type != 2) {\n        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));\nLAB_0002baa7:\n        uVar31 = uVar31 + 1;\n        pEVar21 = pEVar21 + 1;\n        if (uVar20 <= uVar31) goto LAB_0002bbaa;\n      }\n      if (uVar20 <= pEVar21->sh_link) goto LAB_0002baa7;\n      if (is_32bit_elf == 0) {\n        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      else {\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      uVar20 = pEVar21->sh_link;\n      pEVar4 = filedata->section_headers;\n      if (aux.strtab != (char *)0x0) {\n        pcVar13 = (char *)dcgettext();\n        error(pcVar13);\n        free(aux.strtab);\n        local_70 = 0;\n      }\n      pcVar13 = (char *)dcgettext();\n      aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13);\n      aux.strtab_size = 0;\n      if (aux.strtab != (char *)0x0) {\n        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;\n      }\n      uVar31 = uVar31 + 1;\n      pEVar21 = pEVar21 + 1;\n      uVar20 = (filedata->file_header).e_shnum;\n    } while (uVar31 < uVar20);\nLAB_0002bbaa:\n    local_94 = 0;\n    pEVar21 = local_c4;\n    if (local_c4 != (Elf_Internal_Shdr *)0x0) {\nLAB_0002bbd0:\n      local_90 = (int)pEVar21 + -1;\n      local_c4 = filedata->section_headers;\n      if (uVar20 <= local_94) {\nLAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");\n      }\n      pFVar6 = ((Filedata *)(local_c4 + local_94))->handle;\n      filedata_1 = (Filedata *)(local_c4 + local_94);\n      local_c0 = local_94;\n      while (pFVar6 != (FILE *)0x70000001) {\n        local_c0 = local_c0 + 1;\n        if (local_c0 == uVar20) goto LAB_0002bc1b;\n        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;\n        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n      }\n      local_94 = local_c0 + 1;\n      if ((filedata_1->file_size & 0x200) == 0) {\n        pcVar13 = filedata->string_table;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)) {\n        do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar13 = (char *)dcgettext();\n  printf(pcVar13);\nLAB_0002c274:\n  if (aux.symtab != (Elf_Internal_Sym *)0x0) {\n    free(aux.symtab);\n  }\n  if (aux.strtab != (char *)0x0) {\n    free(aux.strtab);\n  }\n  return local_70;\nLAB_0002be90:\n  uVar20 = (filedata->file_header).e_shnum;\nLAB_0002be9a:\n  if (local_c0 == uVar20) {\nLAB_0002bc78:\n    pcVar13 = (char *)dcgettext();\n    printf(pcVar13);\n    if (filedata->string_table == (char *)0x0) {\n      printf("%d");\n    }\n    else {\n      printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n      printf("\'%s\'");\n    }\n    if (pEVar21 == (Elf_Internal_Shdr *)0x1) goto LAB_0002c274;\n    goto LAB_0002bce7;\n  }\n  aux.info_addr._0_4_ = (uint)local_c4->sh_addr;\n  aux.info_addr._4_4_ = *(int *)((int)&local_c4->sh_addr + 4);\n  pcVar13 = (char *)dcgettext();\n  aux.info = (uchar *)get_data((void *)0x0,filedata,(ulong)local_c4->sh_offset,1,local_c4->sh_size,\n                               pcVar13);\n  aux.info_size = 0;\n  if (aux.info != (uchar *)0x0) {\n    aux.info_size = (ulong)local_c4->sh_size;\n  }\n  pcVar13 = (char *)dcgettext();\n  printf(pcVar13);\n  if (filedata->string_table == (char *)0x0) {\n    printf("%d");\n  }\n  else {\n    printable_section_name\n              ((Filedata *)&filedata->string_table,\n               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n    printf("\'%s\'");\n  }\n  __udivdi3();\n  pcVar13 = (char *)dcgettext();\n  printf(pcVar13);\n  aux.table_len = 0;\n  uVar20 = (filedata->file_header).e_phnum;\n  if (uVar20 == 0) {\n    local_b4 = (byte *)(filedata_1->file_header).e_entry;\n    uVar20 = (uint)aux.seg_base;\n    uVar31 = aux.seg_base._4_4_;\nLAB_0002c050:\n    aux.seg_base._4_4_ = uVar31;\n    aux.seg_base._0_4_ = uVar20;\n    pcVar13 = (char *)dcgettext();\n    puVar15 = (uchar *)get_data((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13);\n    if (puVar15 != (uchar *)0x0) {\n      aux.table_len = (uint)local_b4 / (eh_addr_size * 3);\n      piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24);\n      uVar20 = eh_addr_size;\n      local_c4 = (Elf_Internal_Shdr *)puVar15;\n      aux.table = piVar16;\n      if (!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)) {\n        do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);\n      }\n      free(puVar15);\n      pEVar21 = filedata->section_headers;\n      uVar20 = (filedata->file_header).e_shnum;\n      local_c4 = pEVar21;\n      if (pEVar21 < pEVar21 + uVar20) {\n        do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);\n      }\n      if (aux.table_len != 0) {\n        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);\n        aux.nfuns = aux.nsyms;\n        if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }\n        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);\n        puVar12 = PTR_stdout_000b3fd8;\n        if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }\n        free(aux.funtab);\n      }\n    }\n  }\n  else {\n    pEVar27 = filedata->program_headers;\n    if (pEVar27 != (Elf_Internal_Phdr *)0x0) {\nLAB_0002bfdd:\n      local_b4 = (byte *)(filedata_1->file_header).e_entry;\n      pEVar33 = pEVar27 + uVar20;\n      for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;\n          pEVar27 = pEVar27 + 1) {\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }\n      goto LAB_0002c050;\n    }\n    bVar17 = get_program_headers(filedata);\n    if (bVar17 != 0) {\n      pEVar27 = filedata->program_headers;\n      uVar20 = (filedata->file_header).e_phnum;\n      goto LAB_0002bfdd;\n    }\n  }\n  if (aux.table != (ia64_unw_table_entry *)0x0) {\n    free(aux.table);\n  }\nLAB_0002c236:\n  if (aux.info != (uchar *)0x0) {\n    free(aux.info);\n  }\n  aux.table = (ia64_unw_table_entry *)0x0;\n  aux.info = (uchar *)0x0;\n  if (local_90 == 0) goto LAB_0002c274;\nLAB_0002bce7:\n  uVar20 = (filedata->file_header).e_shnum;\n  pEVar21 = (Elf_Internal_Shdr *)local_90;\n  goto LAB_0002bbd0;\n}" type_identifier (function_declarator "ia64_process_unwind(Filedata *filedata)" identifier (parameter_list "(Filedata *filedata)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) ))) (compound_statement "{\n  bfd_vma *pbVar1;\n  int *piVar2;\n  ushort uVar3;\n  Elf_Internal_Shdr *pEVar4;\n  uint uVar5;\n  FILE *pFVar6;\n  undefined1 *puVar7;\n  absaddr addr;\n  absaddr *paVar8;\n  Filedata *filedata_1;\n  bfd_vma bVar9;\n  uchar uVar10;\n  uchar uVar11;\n  undefined *puVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  uchar *puVar15;\n  ia64_unw_table_entry *piVar16;\n  bfd_boolean bVar17;\n  char *pcVar18;\n  int iVar19;\n  uint uVar20;\n  Elf_Internal_Shdr *pEVar21;\n  group_list *pgVar22;\n  Elf_Internal_Sym *pEVar23;\n  uchar *puVar24;\n  Elf_Internal_Sym *pEVar25;\n  byte *pbVar26;\n  Elf_Internal_Phdr *pEVar27;\n  byte *pbVar28;\n  size_t sVar29;\n  ia64_unw_aux_info *piVar30;\n  uint uVar31;\n  byte *pbVar32;\n  Elf_Internal_Phdr *pEVar33;\n  uint uVar34;\n  uint uVar35;\n  int iVar36;\n  undefined1 uVar37;\n  bool bVar38;\n  undefined1 uVar39;\n  bool bVar40;\n  byte bVar41;\n  elf_vma eVar42;\n  longlong lVar43;\n  undefined *puVar44;\n  undefined4 uVar45;\n  FILE *__stream;\n  bfd_vma in_stack_ffffff34;\n  Elf_Internal_Shdr *local_c4;\n  uint local_c0;\n  void *local_bc;\n  byte *local_b4;\n  Elf_Internal_Sym *local_ac;\n  char *local_a0;\n  uint local_94;\n  int local_90;\n  bfd_boolean local_70;\n  int in_body;\n  char *procname;\n  bfd_vma offset;\n  ia64_unw_aux_info aux;\n  \n  bVar41 = 0;\n  local_70 = 1;\n  piVar30 = &aux;\n  for (iVar19 = 0xe; iVar19 != 0; iVar19 = iVar19 + -1) {\n    piVar30->table = (ia64_unw_table_entry *)0x0;\n    piVar30 = (ia64_unw_aux_info *)&piVar30->table_len;\n  }\n  uVar20 = (filedata->file_header).e_shnum;\n  pEVar21 = filedata->section_headers;\n  if (uVar20 != 0) {\n    local_c4 = (Elf_Internal_Shdr *)0x0;\n    uVar31 = 0;\n    do {\n      while (pEVar21->sh_type != 2) {\n        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));\nLAB_0002baa7:\n        uVar31 = uVar31 + 1;\n        pEVar21 = pEVar21 + 1;\n        if (uVar20 <= uVar31) goto LAB_0002bbaa;\n      }\n      if (uVar20 <= pEVar21->sh_link) goto LAB_0002baa7;\n      if (is_32bit_elf == 0) {\n        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      else {\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      uVar20 = pEVar21->sh_link;\n      pEVar4 = filedata->section_headers;\n      if (aux.strtab != (char *)0x0) {\n        pcVar13 = (char *)dcgettext();\n        error(pcVar13);\n        free(aux.strtab);\n        local_70 = 0;\n      }\n      pcVar13 = (char *)dcgettext();\n      aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13);\n      aux.strtab_size = 0;\n      if (aux.strtab != (char *)0x0) {\n        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;\n      }\n      uVar31 = uVar31 + 1;\n      pEVar21 = pEVar21 + 1;\n      uVar20 = (filedata->file_header).e_shnum;\n    } while (uVar31 < uVar20);\nLAB_0002bbaa:\n    local_94 = 0;\n    pEVar21 = local_c4;\n    if (local_c4 != (Elf_Internal_Shdr *)0x0) {\nLAB_0002bbd0:\n      local_90 = (int)pEVar21 + -1;\n      local_c4 = filedata->section_headers;\n      if (uVar20 <= local_94) {\nLAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");\n      }\n      pFVar6 = ((Filedata *)(local_c4 + local_94))->handle;\n      filedata_1 = (Filedata *)(local_c4 + local_94);\n      local_c0 = local_94;\n      while (pFVar6 != (FILE *)0x70000001) {\n        local_c0 = local_c0 + 1;\n        if (local_c0 == uVar20) goto LAB_0002bc1b;\n        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;\n        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n      }\n      local_94 = local_c0 + 1;\n      if ((filedata_1->file_size & 0x200) == 0) {\n        pcVar13 = filedata->string_table;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)) {\n        do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar13 = (char *)dcgettext();\n  printf(pcVar13);\nLAB_0002c274:\n  if (aux.symtab != (Elf_Internal_Sym *)0x0) {\n    free(aux.symtab);\n  }\n  if (aux.strtab != (char *)0x0) {\n    free(aux.strtab);\n  }\n  return local_70;\nLAB_0002be90:\n  uVar20 = (filedata->file_header).e_shnum;\nLAB_0002be9a:\n  if (local_c0 == uVar20) {\nLAB_0002bc78:\n    pcVar13 = (char *)dcgettext();\n    printf(pcVar13);\n    if (filedata->string_table == (char *)0x0) {\n      printf("%d");\n    }\n    else {\n      printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n      printf("\'%s\'");\n    }\n    if (pEVar21 == (Elf_Internal_Shdr *)0x1) goto LAB_0002c274;\n    goto LAB_0002bce7;\n  }\n  aux.info_addr._0_4_ = (uint)local_c4->sh_addr;\n  aux.info_addr._4_4_ = *(int *)((int)&local_c4->sh_addr + 4);\n  pcVar13 = (char *)dcgettext();\n  aux.info = (uchar *)get_data((void *)0x0,filedata,(ulong)local_c4->sh_offset,1,local_c4->sh_size,\n                               pcVar13);\n  aux.info_size = 0;\n  if (aux.info != (uchar *)0x0) {\n    aux.info_size = (ulong)local_c4->sh_size;\n  }\n  pcVar13 = (char *)dcgettext();\n  printf(pcVar13);\n  if (filedata->string_table == (char *)0x0) {\n    printf("%d");\n  }\n  else {\n    printable_section_name\n              ((Filedata *)&filedata->string_table,\n               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n    printf("\'%s\'");\n  }\n  __udivdi3();\n  pcVar13 = (char *)dcgettext();\n  printf(pcVar13);\n  aux.table_len = 0;\n  uVar20 = (filedata->file_header).e_phnum;\n  if (uVar20 == 0) {\n    local_b4 = (byte *)(filedata_1->file_header).e_entry;\n    uVar20 = (uint)aux.seg_base;\n    uVar31 = aux.seg_base._4_4_;\nLAB_0002c050:\n    aux.seg_base._4_4_ = uVar31;\n    aux.seg_base._0_4_ = uVar20;\n    pcVar13 = (char *)dcgettext();\n    puVar15 = (uchar *)get_data((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13);\n    if (puVar15 != (uchar *)0x0) {\n      aux.table_len = (uint)local_b4 / (eh_addr_size * 3);\n      piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24);\n      uVar20 = eh_addr_size;\n      local_c4 = (Elf_Internal_Shdr *)puVar15;\n      aux.table = piVar16;\n      if (!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)) {\n        do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);\n      }\n      free(puVar15);\n      pEVar21 = filedata->section_headers;\n      uVar20 = (filedata->file_header).e_shnum;\n      local_c4 = pEVar21;\n      if (pEVar21 < pEVar21 + uVar20) {\n        do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);\n      }\n      if (aux.table_len != 0) {\n        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);\n        aux.nfuns = aux.nsyms;\n        if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }\n        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);\n        puVar12 = PTR_stdout_000b3fd8;\n        if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }\n        free(aux.funtab);\n      }\n    }\n  }\n  else {\n    pEVar27 = filedata->program_headers;\n    if (pEVar27 != (Elf_Internal_Phdr *)0x0) {\nLAB_0002bfdd:\n      local_b4 = (byte *)(filedata_1->file_header).e_entry;\n      pEVar33 = pEVar27 + uVar20;\n      for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;\n          pEVar27 = pEVar27 + 1) {\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }\n      goto LAB_0002c050;\n    }\n    bVar17 = get_program_headers(filedata);\n    if (bVar17 != 0) {\n      pEVar27 = filedata->program_headers;\n      uVar20 = (filedata->file_header).e_phnum;\n      goto LAB_0002bfdd;\n    }\n  }\n  if (aux.table != (ia64_unw_table_entry *)0x0) {\n    free(aux.table);\n  }\nLAB_0002c236:\n  if (aux.info != (uchar *)0x0) {\n    free(aux.info);\n  }\n  aux.table = (ia64_unw_table_entry *)0x0;\n  aux.info = (uchar *)0x0;\n  if (local_90 == 0) goto LAB_0002c274;\nLAB_0002bce7:\n  uVar20 = (filedata->file_header).e_shnum;\n  pEVar21 = (Elf_Internal_Shdr *)local_90;\n  goto LAB_0002bbd0;\n}" { (declaration "bfd_vma *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "Elf_Internal_Shdr *pEVar4;" type_identifier (pointer_declarator "*pEVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "FILE *pFVar6;" type_identifier (pointer_declarator "*pFVar6" * identifier) ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "absaddr addr;" type_identifier identifier ;) (declaration "absaddr *paVar8;" type_identifier (pointer_declarator "*paVar8" * identifier) ;) (declaration "Filedata *filedata_1;" type_identifier (pointer_declarator "*filedata_1" * identifier) ;) (declaration "bfd_vma bVar9;" type_identifier identifier ;) (declaration "uchar uVar10;" type_identifier identifier ;) (declaration "uchar uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uchar *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "ia64_unw_table_entry *piVar16;" type_identifier (pointer_declarator "*piVar16" * identifier) ;) (declaration "bfd_boolean bVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "Elf_Internal_Shdr *pEVar21;" type_identifier (pointer_declarator "*pEVar21" * identifier) ;) (declaration "group_list *pgVar22;" type_identifier (pointer_declarator "*pgVar22" * identifier) ;) (declaration "Elf_Internal_Sym *pEVar23;" type_identifier (pointer_declarator "*pEVar23" * identifier) ;) (declaration "uchar *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "Elf_Internal_Sym *pEVar25;" type_identifier (pointer_declarator "*pEVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "Elf_Internal_Phdr *pEVar27;" type_identifier (pointer_declarator "*pEVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "size_t sVar29;" primitive_type identifier ;) (declaration "ia64_unw_aux_info *piVar30;" type_identifier (pointer_declarator "*piVar30" * identifier) ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "byte *pbVar32;" type_identifier (pointer_declarator "*pbVar32" * identifier) ;) (declaration "Elf_Internal_Phdr *pEVar33;" type_identifier (pointer_declarator "*pEVar33" * identifier) ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "undefined1 uVar37;" type_identifier identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "undefined1 uVar39;" type_identifier identifier ;) (declaration "bool bVar40;" primitive_type identifier ;) (declaration "byte bVar41;" type_identifier identifier ;) (declaration "elf_vma eVar42;" type_identifier identifier ;) (declaration "longlong lVar43;" type_identifier identifier ;) (declaration "undefined *puVar44;" type_identifier (pointer_declarator "*puVar44" * identifier) ;) (declaration "undefined4 uVar45;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "bfd_vma in_stack_ffffff34;" type_identifier identifier ;) (declaration "Elf_Internal_Shdr *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "uint local_c0;" type_identifier identifier ;) (declaration "void *local_bc;" primitive_type (pointer_declarator "*local_bc" * identifier) ;) (declaration "byte *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "Elf_Internal_Sym *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "char *local_a0;" primitive_type (pointer_declarator "*local_a0" * identifier) ;) (declaration "uint local_94;" type_identifier identifier ;) (declaration "int local_90;" primitive_type identifier ;) (declaration "bfd_boolean local_70;" type_identifier identifier ;) (declaration "int in_body;" primitive_type identifier ;) (declaration "char *procname;" primitive_type (pointer_declarator "*procname" * identifier) ;) (declaration "bfd_vma offset;" type_identifier identifier ;) (declaration "ia64_unw_aux_info aux;" type_identifier identifier ;) (expression_statement "bVar41 = 0;" (assignment_expression "bVar41 = 0" identifier = number_literal) ;) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;) (expression_statement "piVar30 = &aux;" (assignment_expression "piVar30 = &aux" identifier = (pointer_expression "&aux" & identifier)) ;) (for_statement "for (iVar19 = 0xe; iVar19 != 0; iVar19 = iVar19 + -1) {\n    piVar30->table = (ia64_unw_table_entry *)0x0;\n    piVar30 = (ia64_unw_aux_info *)&piVar30->table_len;\n  }" for ( (assignment_expression "iVar19 = 0xe" identifier = number_literal) ; (binary_expression "iVar19 != 0" identifier != number_literal) ; (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ) (compound_statement "{\n    piVar30->table = (ia64_unw_table_entry *)0x0;\n    piVar30 = (ia64_unw_aux_info *)&piVar30->table_len;\n  }" { (expression_statement "piVar30->table = (ia64_unw_table_entry *)0x0;" (assignment_expression "piVar30->table = (ia64_unw_table_entry *)0x0" (field_expression "piVar30->table" identifier -> field_identifier) = (cast_expression "(ia64_unw_table_entry *)0x0" ( (type_descriptor "ia64_unw_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar30 = (ia64_unw_aux_info *)&piVar30->table_len;" (assignment_expression "piVar30 = (ia64_unw_aux_info *)&piVar30->table_len" identifier = (cast_expression "(ia64_unw_aux_info *)&piVar30->table_len" ( (type_descriptor "ia64_unw_aux_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&piVar30->table_len" & (field_expression "piVar30->table_len" identifier -> field_identifier)))) ;) })) (expression_statement "uVar20 = (filedata->file_header).e_shnum;" (assignment_expression "uVar20 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pEVar21 = filedata->section_headers;" (assignment_expression "pEVar21 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) (if_statement "if (uVar20 != 0) {\n    local_c4 = (Elf_Internal_Shdr *)0x0;\n    uVar31 = 0;\n    do {\n      while (pEVar21->sh_type != 2) {\n        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));\nLAB_0002baa7:\n        uVar31 = uVar31 + 1;\n        pEVar21 = pEVar21 + 1;\n        if (uVar20 <= uVar31) goto LAB_0002bbaa;\n      }\n      if (uVar20 <= pEVar21->sh_link) goto LAB_0002baa7;\n      if (is_32bit_elf == 0) {\n        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      else {\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      uVar20 = pEVar21->sh_link;\n      pEVar4 = filedata->section_headers;\n      if (aux.strtab != (char *)0x0) {\n        pcVar13 = (char *)dcgettext();\n        error(pcVar13);\n        free(aux.strtab);\n        local_70 = 0;\n      }\n      pcVar13 = (char *)dcgettext();\n      aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13);\n      aux.strtab_size = 0;\n      if (aux.strtab != (char *)0x0) {\n        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;\n      }\n      uVar31 = uVar31 + 1;\n      pEVar21 = pEVar21 + 1;\n      uVar20 = (filedata->file_header).e_shnum;\n    } while (uVar31 < uVar20);\nLAB_0002bbaa:\n    local_94 = 0;\n    pEVar21 = local_c4;\n    if (local_c4 != (Elf_Internal_Shdr *)0x0) {\nLAB_0002bbd0:\n      local_90 = (int)pEVar21 + -1;\n      local_c4 = filedata->section_headers;\n      if (uVar20 <= local_94) {\nLAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");\n      }\n      pFVar6 = ((Filedata *)(local_c4 + local_94))->handle;\n      filedata_1 = (Filedata *)(local_c4 + local_94);\n      local_c0 = local_94;\n      while (pFVar6 != (FILE *)0x70000001) {\n        local_c0 = local_c0 + 1;\n        if (local_c0 == uVar20) goto LAB_0002bc1b;\n        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;\n        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n      }\n      local_94 = local_c0 + 1;\n      if ((filedata_1->file_size & 0x200) == 0) {\n        pcVar13 = filedata->string_table;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)) {\n        do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n    local_c4 = (Elf_Internal_Shdr *)0x0;\n    uVar31 = 0;\n    do {\n      while (pEVar21->sh_type != 2) {\n        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));\nLAB_0002baa7:\n        uVar31 = uVar31 + 1;\n        pEVar21 = pEVar21 + 1;\n        if (uVar20 <= uVar31) goto LAB_0002bbaa;\n      }\n      if (uVar20 <= pEVar21->sh_link) goto LAB_0002baa7;\n      if (is_32bit_elf == 0) {\n        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      else {\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      uVar20 = pEVar21->sh_link;\n      pEVar4 = filedata->section_headers;\n      if (aux.strtab != (char *)0x0) {\n        pcVar13 = (char *)dcgettext();\n        error(pcVar13);\n        free(aux.strtab);\n        local_70 = 0;\n      }\n      pcVar13 = (char *)dcgettext();\n      aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13);\n      aux.strtab_size = 0;\n      if (aux.strtab != (char *)0x0) {\n        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;\n      }\n      uVar31 = uVar31 + 1;\n      pEVar21 = pEVar21 + 1;\n      uVar20 = (filedata->file_header).e_shnum;\n    } while (uVar31 < uVar20);\nLAB_0002bbaa:\n    local_94 = 0;\n    pEVar21 = local_c4;\n    if (local_c4 != (Elf_Internal_Shdr *)0x0) {\nLAB_0002bbd0:\n      local_90 = (int)pEVar21 + -1;\n      local_c4 = filedata->section_headers;\n      if (uVar20 <= local_94) {\nLAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");\n      }\n      pFVar6 = ((Filedata *)(local_c4 + local_94))->handle;\n      filedata_1 = (Filedata *)(local_c4 + local_94);\n      local_c0 = local_94;\n      while (pFVar6 != (FILE *)0x70000001) {\n        local_c0 = local_c0 + 1;\n        if (local_c0 == uVar20) goto LAB_0002bc1b;\n        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;\n        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n      }\n      local_94 = local_c0 + 1;\n      if ((filedata_1->file_size & 0x200) == 0) {\n        pcVar13 = filedata->string_table;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)) {\n        do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }" { (expression_statement "local_c4 = (Elf_Internal_Shdr *)0x0;" (assignment_expression "local_c4 = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (do_statement "do {\n      while (pEVar21->sh_type != 2) {\n        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));\nLAB_0002baa7:\n        uVar31 = uVar31 + 1;\n        pEVar21 = pEVar21 + 1;\n        if (uVar20 <= uVar31) goto LAB_0002bbaa;\n      }\n      if (uVar20 <= pEVar21->sh_link) goto LAB_0002baa7;\n      if (is_32bit_elf == 0) {\n        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      else {\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      uVar20 = pEVar21->sh_link;\n      pEVar4 = filedata->section_headers;\n      if (aux.strtab != (char *)0x0) {\n        pcVar13 = (char *)dcgettext();\n        error(pcVar13);\n        free(aux.strtab);\n        local_70 = 0;\n      }\n      pcVar13 = (char *)dcgettext();\n      aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13);\n      aux.strtab_size = 0;\n      if (aux.strtab != (char *)0x0) {\n        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;\n      }\n      uVar31 = uVar31 + 1;\n      pEVar21 = pEVar21 + 1;\n      uVar20 = (filedata->file_header).e_shnum;\n    } while (uVar31 < uVar20);" do (compound_statement "{\n      while (pEVar21->sh_type != 2) {\n        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));\nLAB_0002baa7:\n        uVar31 = uVar31 + 1;\n        pEVar21 = pEVar21 + 1;\n        if (uVar20 <= uVar31) goto LAB_0002bbaa;\n      }\n      if (uVar20 <= pEVar21->sh_link) goto LAB_0002baa7;\n      if (is_32bit_elf == 0) {\n        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      else {\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      uVar20 = pEVar21->sh_link;\n      pEVar4 = filedata->section_headers;\n      if (aux.strtab != (char *)0x0) {\n        pcVar13 = (char *)dcgettext();\n        error(pcVar13);\n        free(aux.strtab);\n        local_70 = 0;\n      }\n      pcVar13 = (char *)dcgettext();\n      aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13);\n      aux.strtab_size = 0;\n      if (aux.strtab != (char *)0x0) {\n        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;\n      }\n      uVar31 = uVar31 + 1;\n      pEVar21 = pEVar21 + 1;\n      uVar20 = (filedata->file_header).e_shnum;\n    }" { (while_statement "while (pEVar21->sh_type != 2) {\n        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));\nLAB_0002baa7:\n        uVar31 = uVar31 + 1;\n        pEVar21 = pEVar21 + 1;\n        if (uVar20 <= uVar31) goto LAB_0002bbaa;\n      }" while (parenthesized_expression "(pEVar21->sh_type != 2)" ( (binary_expression "pEVar21->sh_type != 2" (field_expression "pEVar21->sh_type" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));\nLAB_0002baa7:\n        uVar31 = uVar31 + 1;\n        pEVar21 = pEVar21 + 1;\n        if (uVar20 <= uVar31) goto LAB_0002bbaa;\n      }" { (expression_statement "local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001));" (assignment_expression "local_c4 = (Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001))" identifier = (cast_expression "(Elf_Internal_Shdr *)((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001))" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001))" ( (binary_expression "(int)local_c4 + (uint)(pEVar21->sh_type == 0x70000001)" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(pEVar21->sh_type == 0x70000001)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pEVar21->sh_type == 0x70000001)" ( (binary_expression "pEVar21->sh_type == 0x70000001" (field_expression "pEVar21->sh_type" identifier -> field_identifier) == number_literal) )))) )))) ;) (labeled_statement "LAB_0002baa7:\n        uVar31 = uVar31 + 1;" statement_identifier : (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;)) (expression_statement "pEVar21 = pEVar21 + 1;" (assignment_expression "pEVar21 = pEVar21 + 1" identifier = (binary_expression "pEVar21 + 1" identifier + number_literal)) ;) (if_statement "if (uVar20 <= uVar31) goto LAB_0002bbaa;" if (parenthesized_expression "(uVar20 <= uVar31)" ( (binary_expression "uVar20 <= uVar31" identifier <= identifier) )) (goto_statement "goto LAB_0002bbaa;" goto statement_identifier ;)) })) (if_statement "if (uVar20 <= pEVar21->sh_link) goto LAB_0002baa7;" if (parenthesized_expression "(uVar20 <= pEVar21->sh_link)" ( (binary_expression "uVar20 <= pEVar21->sh_link" identifier <= (field_expression "pEVar21->sh_link" identifier -> field_identifier)) )) (goto_statement "goto LAB_0002baa7;" goto statement_identifier ;)) (if_statement "if (is_32bit_elf == 0) {\n        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }\n      else {\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }" if (parenthesized_expression "(is_32bit_elf == 0)" ( (binary_expression "is_32bit_elf == 0" identifier == number_literal) )) (compound_statement "{\n        aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }" { (expression_statement "aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms);" (assignment_expression "aux.symtab = get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms)" (field_expression "aux.symtab" identifier . field_identifier) = (call_expression "get_64bit_elf_symbols(filedata,pEVar21,&aux.nsyms)" identifier (argument_list "(filedata,pEVar21,&aux.nsyms)" ( identifier , identifier , (pointer_expression "&aux.nsyms" & (field_expression "aux.nsyms" identifier . field_identifier)) )))) ;) }) (else_clause "else {\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }" else (compound_statement "{\n        aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);\n      }" { (expression_statement "aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms);" (assignment_expression "aux.symtab = get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms)" (field_expression "aux.symtab" identifier . field_identifier) = (call_expression "get_32bit_elf_symbols(filedata,pEVar21,&aux.nsyms)" identifier (argument_list "(filedata,pEVar21,&aux.nsyms)" ( identifier , identifier , (pointer_expression "&aux.nsyms" & (field_expression "aux.nsyms" identifier . field_identifier)) )))) ;) }))) (expression_statement "uVar20 = pEVar21->sh_link;" (assignment_expression "uVar20 = pEVar21->sh_link" identifier = (field_expression "pEVar21->sh_link" identifier -> field_identifier)) ;) (expression_statement "pEVar4 = filedata->section_headers;" (assignment_expression "pEVar4 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) (if_statement "if (aux.strtab != (char *)0x0) {\n        pcVar13 = (char *)dcgettext();\n        error(pcVar13);\n        free(aux.strtab);\n        local_70 = 0;\n      }" if (parenthesized_expression "(aux.strtab != (char *)0x0)" ( (binary_expression "aux.strtab != (char *)0x0" (field_expression "aux.strtab" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar13 = (char *)dcgettext();\n        error(pcVar13);\n        free(aux.strtab);\n        local_70 = 0;\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 "error(pcVar13);" (call_expression "error(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (expression_statement "free(aux.strtab);" (call_expression "free(aux.strtab)" identifier (argument_list "(aux.strtab)" ( (field_expression "aux.strtab" identifier . field_identifier) ))) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) })) (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 "aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13);" (assignment_expression "aux.strtab = (char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13)" (field_expression "aux.strtab" identifier . field_identifier) = (cast_expression "(char *)get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13)" identifier (argument_list "((void *)0x0,filedata,(ulong)pEVar4[uVar20].sh_offset,1,\n                                    pEVar4[uVar20].sh_size,pcVar13)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(ulong)pEVar4[uVar20].sh_offset" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pEVar4[uVar20].sh_offset" (subscript_expression "pEVar4[uVar20]" identifier [ identifier ]) . field_identifier)) , number_literal , (field_expression "pEVar4[uVar20].sh_size" (subscript_expression "pEVar4[uVar20]" identifier [ identifier ]) . field_identifier) , identifier ))))) ;) (expression_statement "aux.strtab_size = 0;" (assignment_expression "aux.strtab_size = 0" (field_expression "aux.strtab_size" identifier . field_identifier) = number_literal) ;) (if_statement "if (aux.strtab != (char *)0x0) {\n        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;\n      }" if (parenthesized_expression "(aux.strtab != (char *)0x0)" ( (binary_expression "aux.strtab != (char *)0x0" (field_expression "aux.strtab" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;\n      }" { (expression_statement "aux.strtab_size = (ulong)pEVar4[uVar20].sh_size;" (assignment_expression "aux.strtab_size = (ulong)pEVar4[uVar20].sh_size" (field_expression "aux.strtab_size" identifier . field_identifier) = (cast_expression "(ulong)pEVar4[uVar20].sh_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pEVar4[uVar20].sh_size" (subscript_expression "pEVar4[uVar20]" identifier [ identifier ]) . field_identifier))) ;) })) (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;) (expression_statement "pEVar21 = pEVar21 + 1;" (assignment_expression "pEVar21 = pEVar21 + 1" identifier = (binary_expression "pEVar21 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = (filedata->file_header).e_shnum;" (assignment_expression "uVar20 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) }) while (parenthesized_expression "(uVar31 < uVar20)" ( (binary_expression "uVar31 < uVar20" identifier < identifier) )) ;) (labeled_statement "LAB_0002bbaa:\n    local_94 = 0;" statement_identifier : (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;)) (expression_statement "pEVar21 = local_c4;" (assignment_expression "pEVar21 = local_c4" identifier = identifier) ;) (if_statement "if (local_c4 != (Elf_Internal_Shdr *)0x0) {\nLAB_0002bbd0:\n      local_90 = (int)pEVar21 + -1;\n      local_c4 = filedata->section_headers;\n      if (uVar20 <= local_94) {\nLAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");\n      }\n      pFVar6 = ((Filedata *)(local_c4 + local_94))->handle;\n      filedata_1 = (Filedata *)(local_c4 + local_94);\n      local_c0 = local_94;\n      while (pFVar6 != (FILE *)0x70000001) {\n        local_c0 = local_c0 + 1;\n        if (local_c0 == uVar20) goto LAB_0002bc1b;\n        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;\n        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n      }\n      local_94 = local_c0 + 1;\n      if ((filedata_1->file_size & 0x200) == 0) {\n        pcVar13 = filedata->string_table;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)) {\n        do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }" if (parenthesized_expression "(local_c4 != (Elf_Internal_Shdr *)0x0)" ( (binary_expression "local_c4 != (Elf_Internal_Shdr *)0x0" identifier != (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002bbd0:\n      local_90 = (int)pEVar21 + -1;\n      local_c4 = filedata->section_headers;\n      if (uVar20 <= local_94) {\nLAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");\n      }\n      pFVar6 = ((Filedata *)(local_c4 + local_94))->handle;\n      filedata_1 = (Filedata *)(local_c4 + local_94);\n      local_c0 = local_94;\n      while (pFVar6 != (FILE *)0x70000001) {\n        local_c0 = local_c0 + 1;\n        if (local_c0 == uVar20) goto LAB_0002bc1b;\n        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;\n        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n      }\n      local_94 = local_c0 + 1;\n      if ((filedata_1->file_size & 0x200) == 0) {\n        pcVar13 = filedata->string_table;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)) {\n        do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }" { (labeled_statement "LAB_0002bbd0:\n      local_90 = (int)pEVar21 + -1;" statement_identifier : (expression_statement "local_90 = (int)pEVar21 + -1;" (assignment_expression "local_90 = (int)pEVar21 + -1" identifier = (binary_expression "(int)pEVar21 + -1" (cast_expression "(int)pEVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;)) (expression_statement "local_c4 = filedata->section_headers;" (assignment_expression "local_c4 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) (if_statement "if (uVar20 <= local_94) {\nLAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");\n      }" if (parenthesized_expression "(uVar20 <= local_94)" ( (binary_expression "uVar20 <= local_94" identifier <= identifier) )) (compound_statement "{\nLAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");\n      }" { (labeled_statement "LAB_0002bc1b:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");" statement_identifier : comment (expression_statement "__assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");" (call_expression "__assert_fail("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind")" identifier (argument_list "("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind")" ( (string_literal ""unwsec != NULL"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , number_literal , (string_literal ""ia64_process_unwind"" " string_content ") ))) ;)) })) (expression_statement "pFVar6 = ((Filedata *)(local_c4 + local_94))->handle;" (assignment_expression "pFVar6 = ((Filedata *)(local_c4 + local_94))->handle" identifier = (field_expression "((Filedata *)(local_c4 + local_94))->handle" (parenthesized_expression "((Filedata *)(local_c4 + local_94))" ( (cast_expression "(Filedata *)(local_c4 + local_94)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + local_94)" ( (binary_expression "local_c4 + local_94" identifier + identifier) ))) )) -> field_identifier)) ;) (expression_statement "filedata_1 = (Filedata *)(local_c4 + local_94);" (assignment_expression "filedata_1 = (Filedata *)(local_c4 + local_94)" identifier = (cast_expression "(Filedata *)(local_c4 + local_94)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + local_94)" ( (binary_expression "local_c4 + local_94" identifier + identifier) )))) ;) (expression_statement "local_c0 = local_94;" (assignment_expression "local_c0 = local_94" identifier = identifier) ;) (while_statement "while (pFVar6 != (FILE *)0x70000001) {\n        local_c0 = local_c0 + 1;\n        if (local_c0 == uVar20) goto LAB_0002bc1b;\n        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;\n        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n      }" while (parenthesized_expression "(pFVar6 != (FILE *)0x70000001)" ( (binary_expression "pFVar6 != (FILE *)0x70000001" identifier != (cast_expression "(FILE *)0x70000001" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_c0 = local_c0 + 1;\n        if (local_c0 == uVar20) goto LAB_0002bc1b;\n        pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;\n        filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n      }" { (expression_statement "local_c0 = local_c0 + 1;" (assignment_expression "local_c0 = local_c0 + 1" identifier = (binary_expression "local_c0 + 1" identifier + number_literal)) ;) (if_statement "if (local_c0 == uVar20) goto LAB_0002bc1b;" if (parenthesized_expression "(local_c0 == uVar20)" ( (binary_expression "local_c0 == uVar20" identifier == identifier) )) (goto_statement "goto LAB_0002bc1b;" goto statement_identifier ;)) (expression_statement "pFVar6 = (FILE *)(filedata_1->file_header).e_phnum;" (assignment_expression "pFVar6 = (FILE *)(filedata_1->file_header).e_phnum" identifier = (cast_expression "(FILE *)(filedata_1->file_header).e_phnum" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(filedata_1->file_header).e_phnum" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;" (assignment_expression "filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize" identifier = (cast_expression "(Filedata *)&(filedata_1->file_header).e_phentsize" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(filedata_1->file_header).e_phentsize" & (field_expression "(filedata_1->file_header).e_phentsize" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier)))) ;) })) (expression_statement "local_94 = local_c0 + 1;" (assignment_expression "local_94 = local_c0 + 1" identifier = (binary_expression "local_c0 + 1" identifier + number_literal)) ;) (if_statement "if ((filedata_1->file_size & 0x200) == 0) {\n        pcVar13 = filedata->string_table;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        goto LAB_0002be9a;\n      }" if (parenthesized_expression "((filedata_1->file_size & 0x200) == 0)" ( (binary_expression "(filedata_1->file_size & 0x200) == 0" (parenthesized_expression "(filedata_1->file_size & 0x200)" ( (binary_expression "filedata_1->file_size & 0x200" (field_expression "filedata_1->file_size" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar13 = filedata->string_table;\n        if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        goto LAB_0002be9a;\n      }" { (expression_statement "pcVar13 = filedata->string_table;" (assignment_expression "pcVar13 = filedata->string_table" identifier = (field_expression "filedata->string_table" identifier -> field_identifier)) ;) (if_statement "if (pcVar13 == (char *)0x0) {\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }\n        else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0x16;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          pcVar13 = filedata->string_table;\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }\n          if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();\n          iVar19 = 0xd;\n          bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar14 = (byte *)".IA_64.unwind";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }\n          local_c4 = filedata->section_headers;\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".IA_64.unwind_info";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }" { (labeled_statement "LAB_0002c92b:\n          pbVar28 = (byte *)dcgettext();" statement_identifier : (expression_statement "pbVar28 = (byte *)dcgettext();" (assignment_expression "pbVar28 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar19 = 0x16;" (assignment_expression "iVar19 = 0x16" identifier = number_literal) ;) (expression_statement "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar40 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar40 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar14 = (byte *)".gnu.linkonce.ia64unw.";" (assignment_expression "pbVar14 = (byte *)".gnu.linkonce.ia64unw."" identifier = (cast_expression "(byte *)".gnu.linkonce.ia64unw."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.ia64unw."" " string_content "))) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar28 < *pbVar14;" (assignment_expression "bVar38 = *pbVar28 < *pbVar14" identifier = (binary_expression "*pbVar28 < *pbVar14" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar40 = *pbVar28 == *pbVar14;" (assignment_expression "bVar40 = *pbVar28 == *pbVar14" identifier = (binary_expression "*pbVar28 == *pbVar14" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar40)" ( identifier )) ;) (expression_statement "pcVar13 = filedata->string_table;" (assignment_expression "pcVar13 = filedata->string_table" identifier = (field_expression "filedata->string_table" identifier -> field_identifier)) ;) (if_statement "if ((!bVar38 && !bVar40) == bVar38) {\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }" if (parenthesized_expression "((!bVar38 && !bVar40) == bVar38)" ( (binary_expression "(!bVar38 && !bVar40) == bVar38" (parenthesized_expression "(!bVar38 && !bVar40)" ( (binary_expression "!bVar38 && !bVar40" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar40" ! identifier)) )) == identifier) )) (compound_statement "{\n            if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }\n            goto LAB_0002bd4e;\n          }" { (if_statement "if ((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }\n            else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }" if (parenthesized_expression "((pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name))" ( (binary_expression "(pcVar13 == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)" (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((char *)filedata->string_table_length <= filedata_1->file_name)" ( (binary_expression "(char *)filedata->string_table_length <= filedata_1->file_name" (cast_expression "(char *)filedata->string_table_length" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->string_table_length" identifier -> field_identifier)) <= (field_expression "filedata_1->file_name" identifier -> field_identifier)) ))) )) (compound_statement "{\n              pbVar28 = (byte *)dcgettext();\n              local_c4 = filedata->section_headers;\n            }" { (expression_statement "pbVar28 = (byte *)dcgettext();" (assignment_expression "pbVar28 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_c4 = filedata->section_headers;" (assignment_expression "local_c4 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) }) (else_clause "else {\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }" else (compound_statement "{\n              pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);\n              local_c4 = filedata->section_headers;\n            }" { (expression_statement "pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name);" (assignment_expression "pbVar28 = (byte *)(pcVar13 + (int)filedata_1->file_name)" identifier = (cast_expression "(byte *)(pcVar13 + (int)filedata_1->file_name)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + (int)filedata_1->file_name)" ( (binary_expression "pcVar13 + (int)filedata_1->file_name" identifier + (cast_expression "(int)filedata_1->file_name" ( (type_descriptor "int" primitive_type) ) (field_expression "filedata_1->file_name" identifier -> field_identifier))) )))) ;) (expression_statement "local_c4 = filedata->section_headers;" (assignment_expression "local_c4 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) }))) (goto_statement "goto LAB_0002bd4e;" goto statement_identifier ;) })) (if_statement "if (pcVar13 != (char *)0x0) {\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }" if (parenthesized_expression "(pcVar13 != (char *)0x0)" ( (binary_expression "pcVar13 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar18 = filedata_1->file_name;\n            goto LAB_0002c5fe;\n          }" { (expression_statement "pcVar18 = filedata_1->file_name;" (assignment_expression "pcVar18 = filedata_1->file_name" identifier = (field_expression "filedata_1->file_name" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0002c5fe;" goto statement_identifier ;) })) (labeled_statement "LAB_0002c9ae:\n          pbVar28 = (byte *)dcgettext();" statement_identifier : (expression_statement "pbVar28 = (byte *)dcgettext();" (assignment_expression "pbVar28 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar19 = 0xd;" (assignment_expression "iVar19 = 0xd" identifier = number_literal) ;) (expression_statement "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar40 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar40 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar14 = (byte *)".IA_64.unwind";" (assignment_expression "pbVar14 = (byte *)".IA_64.unwind"" identifier = (cast_expression "(byte *)".IA_64.unwind"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".IA_64.unwind"" " string_content "))) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar28 < *pbVar14;" (assignment_expression "bVar38 = *pbVar28 < *pbVar14" identifier = (binary_expression "*pbVar28 < *pbVar14" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar40 = *pbVar28 == *pbVar14;" (assignment_expression "bVar40 = *pbVar28 == *pbVar14" identifier = (binary_expression "*pbVar28 == *pbVar14" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar40)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar40) == bVar38) {\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }" if (parenthesized_expression "((!bVar38 && !bVar40) == bVar38)" ( (binary_expression "(!bVar38 && !bVar40) == bVar38" (parenthesized_expression "(!bVar38 && !bVar40)" ( (binary_expression "!bVar38 && !bVar40" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar40" ! identifier)) )) == identifier) )) (compound_statement "{\n            if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }\nLAB_0002ca17:\n            local_b4 = local_b4 + 0xd;\n          }" { (if_statement "if ((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)) {\n              local_b4 = (byte *)dcgettext();\n            }\n            else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }" if (parenthesized_expression "((filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name))" ( (binary_expression "(filedata->string_table == (char *)0x0) ||\n               ((char *)filedata->string_table_length <= filedata_1->file_name)" (parenthesized_expression "(filedata->string_table == (char *)0x0)" ( (binary_expression "filedata->string_table == (char *)0x0" (field_expression "filedata->string_table" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((char *)filedata->string_table_length <= filedata_1->file_name)" ( (binary_expression "(char *)filedata->string_table_length <= filedata_1->file_name" (cast_expression "(char *)filedata->string_table_length" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->string_table_length" identifier -> field_identifier)) <= (field_expression "filedata_1->file_name" identifier -> field_identifier)) ))) )) (compound_statement "{\n              local_b4 = (byte *)dcgettext();\n            }" { (expression_statement "local_b4 = (byte *)dcgettext();" (assignment_expression "local_b4 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }" else (compound_statement "{\n              local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);\n            }" { (expression_statement "local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name);" (assignment_expression "local_b4 = (byte *)(filedata->string_table + (int)filedata_1->file_name)" identifier = (cast_expression "(byte *)(filedata->string_table + (int)filedata_1->file_name)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(filedata->string_table + (int)filedata_1->file_name)" ( (binary_expression "filedata->string_table + (int)filedata_1->file_name" (field_expression "filedata->string_table" identifier -> field_identifier) + (cast_expression "(int)filedata_1->file_name" ( (type_descriptor "int" primitive_type) ) (field_expression "filedata_1->file_name" identifier -> field_identifier))) )))) ;) }))) (labeled_statement "LAB_0002ca17:\n            local_b4 = local_b4 + 0xd;" statement_identifier : (expression_statement "local_b4 = local_b4 + 0xd;" (assignment_expression "local_b4 = local_b4 + 0xd" identifier = (binary_expression "local_b4 + 0xd" identifier + number_literal)) ;)) }) (else_clause "else {\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }" else (compound_statement "{\nLAB_0002c62d:\n            local_b4 = &DAT_0007bc55;\n          }" { (labeled_statement "LAB_0002c62d:\n            local_b4 = &DAT_0007bc55;" statement_identifier : (expression_statement "local_b4 = &DAT_0007bc55;" (assignment_expression "local_b4 = &DAT_0007bc55" identifier = (pointer_expression "&DAT_0007bc55" & identifier)) ;)) }))) (expression_statement "local_c4 = filedata->section_headers;" (assignment_expression "local_c4 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) (if_statement "if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;" if (parenthesized_expression "((filedata->file_header).e_shnum == 0)" ( (binary_expression "(filedata->file_header).e_shnum == 0" (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (goto_statement "goto LAB_0002bc78;" goto statement_identifier ;)) (expression_statement "pcVar13 = ".IA_64.unwind_info";" (assignment_expression "pcVar13 = ".IA_64.unwind_info"" identifier = (string_literal "".IA_64.unwind_info"" " string_content ")) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (do_statement "do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);" do (compound_statement "{\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          }" { (if_statement "if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 == (Elf_Internal_Shdr *)0x0)" ( (binary_expression "local_c4 == (Elf_Internal_Shdr *)0x0" identifier == (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar28 = (byte *)dcgettext();\n              iVar19 = 0x12;\n              pbVar14 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }" { (expression_statement "uVar37 = &stack0xffffff34 < (undefined1 *)0x4;" (assignment_expression "uVar37 = &stack0xffffff34 < (undefined1 *)0x4" identifier = (binary_expression "&stack0xffffff34 < (undefined1 *)0x4" (pointer_expression "&stack0xffffff34" & identifier) < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar39 = &stack0x00000000 == (undefined1 *)0xd0;" (assignment_expression "uVar39 = &stack0x00000000 == (undefined1 *)0xd0" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xd0" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xd0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar28 = (byte *)dcgettext();" (assignment_expression "pbVar28 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar19 = 0x12;" (assignment_expression "iVar19 = 0x12" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)pcVar13;" (assignment_expression "pbVar14 = (byte *)pcVar13" identifier = (cast_expression "(byte *)pcVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);" do (compound_statement "{\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar28 < *pbVar14;\n                uVar39 = *pbVar28 == *pbVar14;\n                pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n              }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "uVar37 = *pbVar28 < *pbVar14;" (assignment_expression "uVar37 = *pbVar28 < *pbVar14" identifier = (binary_expression "*pbVar28 < *pbVar14" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar39 = *pbVar28 == *pbVar14;" (assignment_expression "uVar39 = *pbVar28 == *pbVar14" identifier = (binary_expression "*pbVar28 == *pbVar14" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar39)" ( (cast_expression "(bool)uVar39" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }" if (parenthesized_expression "((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37)" ( (binary_expression "(!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37" (parenthesized_expression "(!(bool)uVar37 && !(bool)uVar39)" ( (binary_expression "!(bool)uVar37 && !(bool)uVar39" (unary_expression "!(bool)uVar37" ! (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar39" ! (cast_expression "(bool)uVar39" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar28 = (byte *)dcgettext();\n                goto LAB_0002c699;\n              }" { (expression_statement "pbVar28 = (byte *)dcgettext();" (assignment_expression "pbVar28 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0002c699;" goto statement_identifier ;) })) }) (else_clause "else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }" else (compound_statement "{\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }" { (expression_statement "pcVar18 = filedata->string_table;" (assignment_expression "pcVar18 = filedata->string_table" identifier = (field_expression "filedata->string_table" identifier -> field_identifier)) ;) (if_statement "if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }" if (parenthesized_expression "((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20))" ( (binary_expression "(pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)" (parenthesized_expression "(pcVar18 == (char *)0x0)" ( (binary_expression "pcVar18 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)" ( (comma_expression "uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20" (assignment_expression "uVar20 = local_c4->sh_name" identifier = (field_expression "local_c4->sh_name" identifier -> field_identifier)) , (binary_expression "filedata->string_table_length <= uVar20" (field_expression "filedata->string_table_length" identifier -> field_identifier) <= identifier)) ))) )) (compound_statement "{\n                pbVar28 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x12;\n                pbVar14 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }" { (expression_statement "pbVar28 = (byte *)dcgettext();" (assignment_expression "pbVar28 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar40 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar40 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar19 = 0x12;" (assignment_expression "iVar19 = 0x12" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)pcVar13;" (assignment_expression "pbVar14 = (byte *)pcVar13" identifier = (cast_expression "(byte *)pcVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);" do (compound_statement "{\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar28 < *pbVar14;\n                  bVar40 = *pbVar28 == *pbVar14;\n                  pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar28 < *pbVar14;" (assignment_expression "bVar38 = *pbVar28 < *pbVar14" identifier = (binary_expression "*pbVar28 < *pbVar14" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar40 = *pbVar28 == *pbVar14;" (assignment_expression "bVar40 = *pbVar28 == *pbVar14" identifier = (binary_expression "*pbVar28 == *pbVar14" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar40)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }" if (parenthesized_expression "((!bVar38 && !bVar40) == bVar38)" ( (binary_expression "(!bVar38 && !bVar40) == bVar38" (parenthesized_expression "(!bVar38 && !bVar40)" ( (binary_expression "!bVar38 && !bVar40" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar40" ! identifier)) )) == identifier) )) (compound_statement "{\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }" { (if_statement "if (filedata->string_table == (char *)0x0) {\n                    pbVar28 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }" if (parenthesized_expression "(filedata->string_table == (char *)0x0)" ( (binary_expression "filedata->string_table == (char *)0x0" (field_expression "filedata->string_table" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pbVar28 = (byte *)dcgettext();\n                  }" { (expression_statement "pbVar28 = (byte *)dcgettext();" (assignment_expression "pbVar28 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }" else (if_statement "if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar28 = (byte *)dcgettext();\n                  }" if (parenthesized_expression "(local_c4->sh_name < filedata->string_table_length)" ( (binary_expression "local_c4->sh_name < filedata->string_table_length" (field_expression "local_c4->sh_name" identifier -> field_identifier) < (field_expression "filedata->string_table_length" identifier -> field_identifier)) )) (compound_statement "{\n                    pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }" { (expression_statement "pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name);" (assignment_expression "pbVar28 = (byte *)(filedata->string_table + local_c4->sh_name)" identifier = (cast_expression "(byte *)(filedata->string_table + local_c4->sh_name)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(filedata->string_table + local_c4->sh_name)" ( (binary_expression "filedata->string_table + local_c4->sh_name" (field_expression "filedata->string_table" identifier -> field_identifier) + (field_expression "local_c4->sh_name" identifier -> field_identifier)) )))) ;) }) (else_clause "else {\n                    pbVar28 = (byte *)dcgettext();\n                  }" else (compound_statement "{\n                    pbVar28 = (byte *)dcgettext();\n                  }" { (expression_statement "pbVar28 = (byte *)dcgettext();" (assignment_expression "pbVar28 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }))))) (goto_statement "goto LAB_0002c699;" goto statement_identifier ;) })) }) (else_clause "else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }" else (compound_statement "{\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar28 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar28 == (byte *)0x0;\n                iVar19 = 0x12;\n                pbVar14 = pbVar28;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }" { (expression_statement "bVar38 = CARRY4((uint)pcVar18,uVar20);" (assignment_expression "bVar38 = CARRY4((uint)pcVar18,uVar20)" identifier = (call_expression "CARRY4((uint)pcVar18,uVar20)" identifier (argument_list "((uint)pcVar18,uVar20)" ( (cast_expression "(uint)pcVar18" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "pbVar28 = (byte *)(pcVar18 + uVar20);" (assignment_expression "pbVar28 = (byte *)(pcVar18 + uVar20)" identifier = (cast_expression "(byte *)(pcVar18 + uVar20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + uVar20)" ( (binary_expression "pcVar18 + uVar20" identifier + identifier) )))) ;) (expression_statement "bVar40 = pbVar28 == (byte *)0x0;" (assignment_expression "bVar40 = pbVar28 == (byte *)0x0" identifier = (binary_expression "pbVar28 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar19 = 0x12;" (assignment_expression "iVar19 = 0x12" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar28;" (assignment_expression "pbVar14 = pbVar28" identifier = identifier) ;) (expression_statement "pbVar26 = (byte *)pcVar13;" (assignment_expression "pbVar26 = (byte *)pcVar13" identifier = (cast_expression "(byte *)pcVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);" do (compound_statement "{\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar14 < *pbVar26;" (assignment_expression "bVar38 = *pbVar14 < *pbVar26" identifier = (binary_expression "*pbVar14 < *pbVar26" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "bVar40 = *pbVar14 == *pbVar26;" (assignment_expression "bVar40 = *pbVar14 == *pbVar26" identifier = (binary_expression "*pbVar14 == *pbVar26" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar40)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }" if (parenthesized_expression "((!bVar38 && !bVar40) == bVar38)" ( (binary_expression "(!bVar38 && !bVar40) == bVar38" (parenthesized_expression "(!bVar38 && !bVar40)" ( (binary_expression "!bVar38 && !bVar40" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar40" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }" { (labeled_statement "LAB_0002c699:\n                  iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);" statement_identifier : (expression_statement "iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4);" (assignment_expression "iVar19 = strcmp((char *)(pbVar28 + 0x12),(char *)local_b4)" identifier = (call_expression "strcmp((char *)(pbVar28 + 0x12),(char *)local_b4)" identifier (argument_list "((char *)(pbVar28 + 0x12),(char *)local_b4)" ( (cast_expression "(char *)(pbVar28 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + 0x12)" ( (binary_expression "pbVar28 + 0x12" identifier + number_literal) ))) , (cast_expression "(char *)local_b4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar19 == 0) goto LAB_0002be90;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002be90;" goto statement_identifier ;)) })) }))) }))) (expression_statement "local_c0 = local_c0 + 1;" (assignment_expression "local_c0 = local_c0 + 1" identifier = (binary_expression "local_c0 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + 1;" (assignment_expression "local_c4 = local_c4 + 1" identifier = (binary_expression "local_c4 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = (filedata->file_header).e_shnum;" (assignment_expression "uVar20 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) }) while (parenthesized_expression "(local_c0 < uVar20)" ( (binary_expression "local_c0 < uVar20" identifier < identifier) )) ;) }) (else_clause "else {\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }" else (compound_statement "{\n          pcVar18 = filedata_1->file_name;\n          bVar38 = pcVar18 < (char *)filedata->string_table_length;\n          bVar40 = pcVar18 == (char *)filedata->string_table_length;\n          if (!bVar38) goto LAB_0002c92b;\n          pbVar28 = (byte *)(pcVar13 + (int)pcVar18);\n          iVar19 = 0x16;\n          pbVar14 = pbVar28;\n          pbVar26 = (byte *)".gnu.linkonce.ia64unw.";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;\n          pcVar13 = ".gnu.linkonce.ia64unwi.";\n          local_c0 = 0;\n          do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);\n        }" { (expression_statement "pcVar18 = filedata_1->file_name;" (assignment_expression "pcVar18 = filedata_1->file_name" identifier = (field_expression "filedata_1->file_name" identifier -> field_identifier)) ;) (expression_statement "bVar38 = pcVar18 < (char *)filedata->string_table_length;" (assignment_expression "bVar38 = pcVar18 < (char *)filedata->string_table_length" identifier = (binary_expression "pcVar18 < (char *)filedata->string_table_length" identifier < (cast_expression "(char *)filedata->string_table_length" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->string_table_length" identifier -> field_identifier)))) ;) (expression_statement "bVar40 = pcVar18 == (char *)filedata->string_table_length;" (assignment_expression "bVar40 = pcVar18 == (char *)filedata->string_table_length" identifier = (binary_expression "pcVar18 == (char *)filedata->string_table_length" identifier == (cast_expression "(char *)filedata->string_table_length" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->string_table_length" identifier -> field_identifier)))) ;) (if_statement "if (!bVar38) goto LAB_0002c92b;" if (parenthesized_expression "(!bVar38)" ( (unary_expression "!bVar38" ! identifier) )) (goto_statement "goto LAB_0002c92b;" goto statement_identifier ;)) (expression_statement "pbVar28 = (byte *)(pcVar13 + (int)pcVar18);" (assignment_expression "pbVar28 = (byte *)(pcVar13 + (int)pcVar18)" identifier = (cast_expression "(byte *)(pcVar13 + (int)pcVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + (int)pcVar18)" ( (binary_expression "pcVar13 + (int)pcVar18" identifier + (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar19 = 0x16;" (assignment_expression "iVar19 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar14 = pbVar28;" (assignment_expression "pbVar14 = pbVar28" identifier = identifier) ;) (expression_statement "pbVar26 = (byte *)".gnu.linkonce.ia64unw.";" (assignment_expression "pbVar26 = (byte *)".gnu.linkonce.ia64unw."" identifier = (cast_expression "(byte *)".gnu.linkonce.ia64unw."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.linkonce.ia64unw."" " string_content "))) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar14 < *pbVar26;\n            bVar40 = *pbVar14 == *pbVar26;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar14 < *pbVar26;" (assignment_expression "bVar38 = *pbVar14 < *pbVar26" identifier = (binary_expression "*pbVar14 < *pbVar26" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "bVar40 = *pbVar14 == *pbVar26;" (assignment_expression "bVar40 = *pbVar14 == *pbVar26" identifier = (binary_expression "*pbVar14 == *pbVar26" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar40)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar40) != bVar38) {\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }" if (parenthesized_expression "((!bVar38 && !bVar40) != bVar38)" ( (binary_expression "(!bVar38 && !bVar40) != bVar38" (parenthesized_expression "(!bVar38 && !bVar40)" ( (binary_expression "!bVar38 && !bVar40" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar40" ! identifier)) )) != identifier) )) (compound_statement "{\nLAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;\n            bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);\n            local_b4 = (byte *)(pcVar13 + (int)pcVar18);\n            bVar40 = local_b4 == (byte *)0x0;\n            iVar19 = 0xd;\n            pbVar28 = local_b4;\n            pbVar14 = (byte *)".IA_64.unwind";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);\n            if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }" { (labeled_statement "LAB_0002c5fe:\n            if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;" statement_identifier : (if_statement "if ((char *)filedata->string_table_length <= pcVar18) goto LAB_0002c9ae;" if (parenthesized_expression "((char *)filedata->string_table_length <= pcVar18)" ( (binary_expression "(char *)filedata->string_table_length <= pcVar18" (cast_expression "(char *)filedata->string_table_length" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->string_table_length" identifier -> field_identifier)) <= identifier) )) (goto_statement "goto LAB_0002c9ae;" goto statement_identifier ;))) (expression_statement "bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13);" (assignment_expression "bVar38 = CARRY4((uint)pcVar18,(uint)pcVar13)" identifier = (call_expression "CARRY4((uint)pcVar18,(uint)pcVar13)" identifier (argument_list "((uint)pcVar18,(uint)pcVar13)" ( (cast_expression "(uint)pcVar18" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)pcVar13" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_b4 = (byte *)(pcVar13 + (int)pcVar18);" (assignment_expression "local_b4 = (byte *)(pcVar13 + (int)pcVar18)" identifier = (cast_expression "(byte *)(pcVar13 + (int)pcVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar13 + (int)pcVar18)" ( (binary_expression "pcVar13 + (int)pcVar18" identifier + (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "bVar40 = local_b4 == (byte *)0x0;" (assignment_expression "bVar40 = local_b4 == (byte *)0x0" identifier = (binary_expression "local_b4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar19 = 0xd;" (assignment_expression "iVar19 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar28 = local_b4;" (assignment_expression "pbVar28 = local_b4" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".IA_64.unwind";" (assignment_expression "pbVar14 = (byte *)".IA_64.unwind"" identifier = (cast_expression "(byte *)".IA_64.unwind"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".IA_64.unwind"" " string_content "))) ;) (do_statement "do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            } while (bVar40);" do (compound_statement "{\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar38 = *pbVar28 < *pbVar14;\n              bVar40 = *pbVar28 == *pbVar14;\n              pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n              pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n            }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar28 < *pbVar14;" (assignment_expression "bVar38 = *pbVar28 < *pbVar14" identifier = (binary_expression "*pbVar28 < *pbVar14" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar40 = *pbVar28 == *pbVar14;" (assignment_expression "bVar40 = *pbVar28 == *pbVar14" identifier = (binary_expression "*pbVar28 == *pbVar14" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar40)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002ca17;" if (parenthesized_expression "((!bVar38 && !bVar40) == bVar38)" ( (binary_expression "(!bVar38 && !bVar40) == bVar38" (parenthesized_expression "(!bVar38 && !bVar40)" ( (binary_expression "!bVar38 && !bVar40" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar40" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002ca17;" goto statement_identifier ;)) (goto_statement "goto LAB_0002c62d;" goto statement_identifier ;) })) (labeled_statement "LAB_0002bd4e:\n          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;" statement_identifier : (if_statement "if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;" if (parenthesized_expression "((filedata->file_header).e_shnum == 0)" ( (binary_expression "(filedata->file_header).e_shnum == 0" (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (goto_statement "goto LAB_0002bc78;" goto statement_identifier ;))) (expression_statement "pcVar13 = ".gnu.linkonce.ia64unwi.";" (assignment_expression "pcVar13 = ".gnu.linkonce.ia64unwi."" identifier = (string_literal "".gnu.linkonce.ia64unwi."" " string_content ")) ;) (expression_statement "local_c0 = 0;" (assignment_expression "local_c0 = 0" identifier = number_literal) ;) (do_statement "do {\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          } while (local_c0 < uVar20);" do (compound_statement "{\n            if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = local_c0 + 1;\n            local_c4 = local_c4 + 1;\n            uVar20 = (filedata->file_header).e_shnum;\n          }" { (if_statement "if (local_c4 == (Elf_Internal_Shdr *)0x0) {\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 == (Elf_Internal_Shdr *)0x0)" ( (binary_expression "local_c4 == (Elf_Internal_Shdr *)0x0" identifier == (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar37 = &stack0xffffff34 < (undefined1 *)0x4;\n              uVar39 = &stack0x00000000 == (undefined1 *)0xd0;\n              pbVar14 = (byte *)dcgettext();\n              iVar19 = 0x17;\n              pbVar26 = (byte *)pcVar13;\n              do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);\n              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }" { (expression_statement "uVar37 = &stack0xffffff34 < (undefined1 *)0x4;" (assignment_expression "uVar37 = &stack0xffffff34 < (undefined1 *)0x4" identifier = (binary_expression "&stack0xffffff34 < (undefined1 *)0x4" (pointer_expression "&stack0xffffff34" & identifier) < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar39 = &stack0x00000000 == (undefined1 *)0xd0;" (assignment_expression "uVar39 = &stack0x00000000 == (undefined1 *)0xd0" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xd0" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xd0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar14 = (byte *)dcgettext();" (assignment_expression "pbVar14 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar19 = 0x17;" (assignment_expression "iVar19 = 0x17" identifier = number_literal) ;) (expression_statement "pbVar26 = (byte *)pcVar13;" (assignment_expression "pbVar26 = (byte *)pcVar13" identifier = (cast_expression "(byte *)pcVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              } while ((bool)uVar39);" do (compound_statement "{\n                if (iVar19 == 0) break;\n                iVar19 = iVar19 + -1;\n                uVar37 = *pbVar14 < *pbVar26;\n                uVar39 = *pbVar14 == *pbVar26;\n                pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n              }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "uVar37 = *pbVar14 < *pbVar26;" (assignment_expression "uVar37 = *pbVar14 < *pbVar26" identifier = (binary_expression "*pbVar14 < *pbVar26" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "uVar39 = *pbVar14 == *pbVar26;" (assignment_expression "uVar39 = *pbVar14 == *pbVar26" identifier = (binary_expression "*pbVar14 == *pbVar26" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar39)" ( (cast_expression "(bool)uVar39" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }" if (parenthesized_expression "((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37)" ( (binary_expression "(!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37" (parenthesized_expression "(!(bool)uVar37 && !(bool)uVar39)" ( (binary_expression "!(bool)uVar37 && !(bool)uVar39" (unary_expression "!(bool)uVar37" ! (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar39" ! (cast_expression "(bool)uVar39" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar37" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                pbVar14 = (byte *)dcgettext();\n                goto LAB_0002bdb1;\n              }" { (expression_statement "pbVar14 = (byte *)dcgettext();" (assignment_expression "pbVar14 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0002bdb1;" goto statement_identifier ;) })) }) (else_clause "else {\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }" else (compound_statement "{\n              pcVar18 = filedata->string_table;\n              if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }\n            }" { (expression_statement "pcVar18 = filedata->string_table;" (assignment_expression "pcVar18 = filedata->string_table" identifier = (field_expression "filedata->string_table" identifier -> field_identifier)) ;) (if_statement "if ((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)) {\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }" if (parenthesized_expression "((pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20))" ( (binary_expression "(pcVar18 == (char *)0x0) ||\n                 (uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)" (parenthesized_expression "(pcVar18 == (char *)0x0)" ( (binary_expression "pcVar18 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20)" ( (comma_expression "uVar20 = local_c4->sh_name, filedata->string_table_length <= uVar20" (assignment_expression "uVar20 = local_c4->sh_name" identifier = (field_expression "local_c4->sh_name" identifier -> field_identifier)) , (binary_expression "filedata->string_table_length <= uVar20" (field_expression "filedata->string_table_length" identifier -> field_identifier) <= identifier)) ))) )) (compound_statement "{\n                pbVar14 = (byte *)dcgettext();\n                bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar40 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar19 = 0x17;\n                pbVar26 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }" { (expression_statement "pbVar14 = (byte *)dcgettext();" (assignment_expression "pbVar14 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar40 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar40 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar19 = 0x17;" (assignment_expression "iVar19 = 0x17" identifier = number_literal) ;) (expression_statement "pbVar26 = (byte *)pcVar13;" (assignment_expression "pbVar26 = (byte *)pcVar13" identifier = (cast_expression "(byte *)pcVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);" do (compound_statement "{\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar14 < *pbVar26;\n                  bVar40 = *pbVar14 == *pbVar26;\n                  pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar14 < *pbVar26;" (assignment_expression "bVar38 = *pbVar14 < *pbVar26" identifier = (binary_expression "*pbVar14 < *pbVar26" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "bVar40 = *pbVar14 == *pbVar26;" (assignment_expression "bVar40 = *pbVar14 == *pbVar26" identifier = (binary_expression "*pbVar14 == *pbVar26" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar40)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar40) == bVar38) {\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }" if (parenthesized_expression "((!bVar38 && !bVar40) == bVar38)" ( (binary_expression "(!bVar38 && !bVar40) == bVar38" (parenthesized_expression "(!bVar38 && !bVar40)" ( (binary_expression "!bVar38 && !bVar40" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar40" ! identifier)) )) == identifier) )) (compound_statement "{\n                  if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }" { (if_statement "if (filedata->string_table == (char *)0x0) {\n                    pbVar14 = (byte *)dcgettext();\n                  }\n                  else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }" if (parenthesized_expression "(filedata->string_table == (char *)0x0)" ( (binary_expression "filedata->string_table == (char *)0x0" (field_expression "filedata->string_table" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pbVar14 = (byte *)dcgettext();\n                  }" { (expression_statement "pbVar14 = (byte *)dcgettext();" (assignment_expression "pbVar14 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }" else (if_statement "if (local_c4->sh_name < filedata->string_table_length) {\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }\n                  else {\n                    pbVar14 = (byte *)dcgettext();\n                  }" if (parenthesized_expression "(local_c4->sh_name < filedata->string_table_length)" ( (binary_expression "local_c4->sh_name < filedata->string_table_length" (field_expression "local_c4->sh_name" identifier -> field_identifier) < (field_expression "filedata->string_table_length" identifier -> field_identifier)) )) (compound_statement "{\n                    pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);\n                  }" { (expression_statement "pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name);" (assignment_expression "pbVar14 = (byte *)(filedata->string_table + local_c4->sh_name)" identifier = (cast_expression "(byte *)(filedata->string_table + local_c4->sh_name)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(filedata->string_table + local_c4->sh_name)" ( (binary_expression "filedata->string_table + local_c4->sh_name" (field_expression "filedata->string_table" identifier -> field_identifier) + (field_expression "local_c4->sh_name" identifier -> field_identifier)) )))) ;) }) (else_clause "else {\n                    pbVar14 = (byte *)dcgettext();\n                  }" else (compound_statement "{\n                    pbVar14 = (byte *)dcgettext();\n                  }" { (expression_statement "pbVar14 = (byte *)dcgettext();" (assignment_expression "pbVar14 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }))))) (goto_statement "goto LAB_0002bdb1;" goto statement_identifier ;) })) }) (else_clause "else {\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }" else (compound_statement "{\n                bVar38 = CARRY4((uint)pcVar18,uVar20);\n                pbVar14 = (byte *)(pcVar18 + uVar20);\n                bVar40 = pbVar14 == (byte *)0x0;\n                iVar19 = 0x17;\n                pbVar26 = pbVar14;\n                pbVar32 = (byte *)pcVar13;\n                do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);\n                if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }\n              }" { (expression_statement "bVar38 = CARRY4((uint)pcVar18,uVar20);" (assignment_expression "bVar38 = CARRY4((uint)pcVar18,uVar20)" identifier = (call_expression "CARRY4((uint)pcVar18,uVar20)" identifier (argument_list "((uint)pcVar18,uVar20)" ( (cast_expression "(uint)pcVar18" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "pbVar14 = (byte *)(pcVar18 + uVar20);" (assignment_expression "pbVar14 = (byte *)(pcVar18 + uVar20)" identifier = (cast_expression "(byte *)(pcVar18 + uVar20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + uVar20)" ( (binary_expression "pcVar18 + uVar20" identifier + identifier) )))) ;) (expression_statement "bVar40 = pbVar14 == (byte *)0x0;" (assignment_expression "bVar40 = pbVar14 == (byte *)0x0" identifier = (binary_expression "pbVar14 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar19 = 0x17;" (assignment_expression "iVar19 = 0x17" identifier = number_literal) ;) (expression_statement "pbVar26 = pbVar14;" (assignment_expression "pbVar26 = pbVar14" identifier = identifier) ;) (expression_statement "pbVar32 = (byte *)pcVar13;" (assignment_expression "pbVar32 = (byte *)pcVar13" identifier = (cast_expression "(byte *)pcVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                } while (bVar40);" do (compound_statement "{\n                  if (iVar19 == 0) break;\n                  iVar19 = iVar19 + -1;\n                  bVar38 = *pbVar26 < *pbVar32;\n                  bVar40 = *pbVar26 == *pbVar32;\n                  pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;\n                  pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;\n                }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar26 < *pbVar32;" (assignment_expression "bVar38 = *pbVar26 < *pbVar32" identifier = (binary_expression "*pbVar26 < *pbVar32" (pointer_expression "*pbVar26" * identifier) < (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "bVar40 = *pbVar26 == *pbVar32;" (assignment_expression "bVar40 = *pbVar26 == *pbVar32" identifier = (binary_expression "*pbVar26 == *pbVar32" (pointer_expression "*pbVar26" * identifier) == (pointer_expression "*pbVar32" * identifier))) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar32 = pbVar32 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar32 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar32 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar40)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar40) == bVar38) {\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }" if (parenthesized_expression "((!bVar38 && !bVar40) == bVar38)" ( (binary_expression "(!bVar38 && !bVar40) == bVar38" (parenthesized_expression "(!bVar38 && !bVar40)" ( (binary_expression "!bVar38 && !bVar40" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar40" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));\n                  if (iVar19 == 0) goto LAB_0002be90;\n                }" { (labeled_statement "LAB_0002bdb1:\n                  iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));" statement_identifier : (expression_statement "iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16));" (assignment_expression "iVar19 = strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16))" identifier = (call_expression "strcmp((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16))" identifier (argument_list "((char *)(pbVar14 + 0x17),(char *)(pbVar28 + 0x16))" ( (cast_expression "(char *)(pbVar14 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar14 + 0x17)" ( (binary_expression "pbVar14 + 0x17" identifier + number_literal) ))) , (cast_expression "(char *)(pbVar28 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar28 + 0x16)" ( (binary_expression "pbVar28 + 0x16" identifier + number_literal) ))) )))) ;)) (if_statement "if (iVar19 == 0) goto LAB_0002be90;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002be90;" goto statement_identifier ;)) })) }))) }))) (expression_statement "local_c0 = local_c0 + 1;" (assignment_expression "local_c0 = local_c0 + 1" identifier = (binary_expression "local_c0 + 1" identifier + number_literal)) ;) (expression_statement "local_c4 = local_c4 + 1;" (assignment_expression "local_c4 = local_c4 + 1" identifier = (binary_expression "local_c4 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = (filedata->file_header).e_shnum;" (assignment_expression "uVar20 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) }) while (parenthesized_expression "(local_c0 < uVar20)" ( (binary_expression "local_c0 < uVar20" identifier < identifier) )) ;) }))) (goto_statement "goto LAB_0002be9a;" goto statement_identifier ;) })) (if_statement "if (((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)) {\n        do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );\n      }" if (parenthesized_expression "(((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0))" ( (binary_expression "((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)) &&\n         (pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)" (parenthesized_expression "((section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0))" ( (binary_expression "(section_headers_groups != (group **)0x0) &&\n          (section_headers_groups[local_c0] != (group *)0x0)" (parenthesized_expression "(section_headers_groups != (group **)0x0)" ( (binary_expression "section_headers_groups != (group **)0x0" identifier != (cast_expression "(group **)0x0" ( (type_descriptor "group **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) && (parenthesized_expression "(section_headers_groups[local_c0] != (group *)0x0)" ( (binary_expression "section_headers_groups[local_c0] != (group *)0x0" (subscript_expression "section_headers_groups[local_c0]" identifier [ identifier ]) != (cast_expression "(group *)0x0" ( (type_descriptor "group *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0)" ( (comma_expression "pgVar22 = section_headers_groups[local_c0]->root, pgVar22 != (group_list *)0x0" (assignment_expression "pgVar22 = section_headers_groups[local_c0]->root" identifier = (field_expression "section_headers_groups[local_c0]->root" (subscript_expression "section_headers_groups[local_c0]" identifier [ identifier ]) -> field_identifier)) , (binary_expression "pgVar22 != (group_list *)0x0" identifier != (cast_expression "(group_list *)0x0" ( (type_descriptor "group_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );\n      }" { (do_statement "do {\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        } while( true );" do (compound_statement "{\n          local_c4 = local_c4 + pgVar22->section_index;\n          if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }\n          bVar40 = puVar7 == (undefined1 *)0x0;\n          iVar19 = 0x13;\n          pbVar14 = (byte *)".IA_64.unwind_info";\n          do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);\n          if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;\n          pgVar22 = pgVar22->next;\n          if (pgVar22 == (group_list *)0x0) break;\n          local_c4 = filedata->section_headers;\n        }" { (expression_statement "local_c4 = local_c4 + pgVar22->section_index;" (assignment_expression "local_c4 = local_c4 + pgVar22->section_index" identifier = (binary_expression "local_c4 + pgVar22->section_index" identifier + (field_expression "pgVar22->section_index" identifier -> field_identifier))) ;) (if_statement "if ((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)) {\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }\n          else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }" if (parenthesized_expression "((local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0))" ( (binary_expression "(local_c4 == (Elf_Internal_Shdr *)0x0) || (filedata->string_table == (char *)0x0)" (parenthesized_expression "(local_c4 == (Elf_Internal_Shdr *)0x0)" ( (binary_expression "local_c4 == (Elf_Internal_Shdr *)0x0" identifier == (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(filedata->string_table == (char *)0x0)" ( (binary_expression "filedata->string_table == (char *)0x0" (field_expression "filedata->string_table" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nLAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();\n            bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            puVar7 = &stack0xffffff34;\n          }" { (labeled_statement "LAB_0002c8dc:\n            pbVar28 = (byte *)dcgettext();" statement_identifier : (expression_statement "pbVar28 = (byte *)dcgettext();" (assignment_expression "pbVar28 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar38 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "puVar7 = &stack0xffffff34;" (assignment_expression "puVar7 = &stack0xffffff34" identifier = (pointer_expression "&stack0xffffff34" & identifier)) ;) }) (else_clause "else {\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }" else (compound_statement "{\n            uVar20 = local_c4->sh_name;\n            pbVar28 = (byte *)(filedata->string_table + uVar20);\n            bVar38 = uVar20 < filedata->string_table_length;\n            puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);\n            if (!bVar38) goto LAB_0002c8dc;\n          }" { (expression_statement "uVar20 = local_c4->sh_name;" (assignment_expression "uVar20 = local_c4->sh_name" identifier = (field_expression "local_c4->sh_name" identifier -> field_identifier)) ;) (expression_statement "pbVar28 = (byte *)(filedata->string_table + uVar20);" (assignment_expression "pbVar28 = (byte *)(filedata->string_table + uVar20)" identifier = (cast_expression "(byte *)(filedata->string_table + uVar20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(filedata->string_table + uVar20)" ( (binary_expression "filedata->string_table + uVar20" (field_expression "filedata->string_table" identifier -> field_identifier) + identifier) )))) ;) (expression_statement "bVar38 = uVar20 < filedata->string_table_length;" (assignment_expression "bVar38 = uVar20 < filedata->string_table_length" identifier = (binary_expression "uVar20 < filedata->string_table_length" identifier < (field_expression "filedata->string_table_length" identifier -> field_identifier))) ;) (expression_statement "puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length);" (assignment_expression "puVar7 = (undefined1 *)(uVar20 - filedata->string_table_length)" identifier = (cast_expression "(undefined1 *)(uVar20 - filedata->string_table_length)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 - filedata->string_table_length)" ( (binary_expression "uVar20 - filedata->string_table_length" identifier - (field_expression "filedata->string_table_length" identifier -> field_identifier)) )))) ;) (if_statement "if (!bVar38) goto LAB_0002c8dc;" if (parenthesized_expression "(!bVar38)" ( (unary_expression "!bVar38" ! identifier) )) (goto_statement "goto LAB_0002c8dc;" goto statement_identifier ;)) }))) (expression_statement "bVar40 = puVar7 == (undefined1 *)0x0;" (assignment_expression "bVar40 = puVar7 == (undefined1 *)0x0" identifier = (binary_expression "puVar7 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar19 = 0x13;" (assignment_expression "iVar19 = 0x13" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)".IA_64.unwind_info";" (assignment_expression "pbVar14 = (byte *)".IA_64.unwind_info"" identifier = (cast_expression "(byte *)".IA_64.unwind_info"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".IA_64.unwind_info"" " string_content "))) ;) (do_statement "do {\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          } while (bVar40);" do (compound_statement "{\n            if (iVar19 == 0) break;\n            iVar19 = iVar19 + -1;\n            bVar38 = *pbVar28 < *pbVar14;\n            bVar40 = *pbVar28 == *pbVar14;\n            pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n          }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar38 = *pbVar28 < *pbVar14;" (assignment_expression "bVar38 = *pbVar28 < *pbVar14" identifier = (binary_expression "*pbVar28 < *pbVar14" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar40 = *pbVar28 == *pbVar14;" (assignment_expression "bVar40 = *pbVar28 == *pbVar14" identifier = (binary_expression "*pbVar28 == *pbVar14" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar40)" ( identifier )) ;) (if_statement "if ((!bVar38 && !bVar40) == bVar38) goto LAB_0002be90;" if (parenthesized_expression "((!bVar38 && !bVar40) == bVar38)" ( (binary_expression "(!bVar38 && !bVar40) == bVar38" (parenthesized_expression "(!bVar38 && !bVar40)" ( (binary_expression "!bVar38 && !bVar40" (unary_expression "!bVar38" ! identifier) && (unary_expression "!bVar40" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002be90;" goto statement_identifier ;)) (expression_statement "pgVar22 = pgVar22->next;" (assignment_expression "pgVar22 = pgVar22->next" identifier = (field_expression "pgVar22->next" identifier -> field_identifier)) ;) (if_statement "if (pgVar22 == (group_list *)0x0) break;" if (parenthesized_expression "(pgVar22 == (group_list *)0x0)" ( (binary_expression "pgVar22 == (group_list *)0x0" identifier == (cast_expression "(group_list *)0x0" ( (type_descriptor "group_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_c4 = filedata->section_headers;" (assignment_expression "local_c4 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0002bc78;" 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 "printf(pcVar13);" (call_expression "printf(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (labeled_statement "LAB_0002c274:\n  if (aux.symtab != (Elf_Internal_Sym *)0x0) {\n    free(aux.symtab);\n  }" statement_identifier : (if_statement "if (aux.symtab != (Elf_Internal_Sym *)0x0) {\n    free(aux.symtab);\n  }" if (parenthesized_expression "(aux.symtab != (Elf_Internal_Sym *)0x0)" ( (binary_expression "aux.symtab != (Elf_Internal_Sym *)0x0" (field_expression "aux.symtab" identifier . field_identifier) != (cast_expression "(Elf_Internal_Sym *)0x0" ( (type_descriptor "Elf_Internal_Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(aux.symtab);\n  }" { (expression_statement "free(aux.symtab);" (call_expression "free(aux.symtab)" identifier (argument_list "(aux.symtab)" ( (field_expression "aux.symtab" identifier . field_identifier) ))) ;) }))) (if_statement "if (aux.strtab != (char *)0x0) {\n    free(aux.strtab);\n  }" if (parenthesized_expression "(aux.strtab != (char *)0x0)" ( (binary_expression "aux.strtab != (char *)0x0" (field_expression "aux.strtab" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(aux.strtab);\n  }" { (expression_statement "free(aux.strtab);" (call_expression "free(aux.strtab)" identifier (argument_list "(aux.strtab)" ( (field_expression "aux.strtab" identifier . field_identifier) ))) ;) })) (return_statement "return local_70;" return identifier ;) (labeled_statement "LAB_0002be90:\n  uVar20 = (filedata->file_header).e_shnum;" statement_identifier : (expression_statement "uVar20 = (filedata->file_header).e_shnum;" (assignment_expression "uVar20 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;)) (labeled_statement "LAB_0002be9a:\n  if (local_c0 == uVar20) {\nLAB_0002bc78:\n    pcVar13 = (char *)dcgettext();\n    printf(pcVar13);\n    if (filedata->string_table == (char *)0x0) {\n      printf("%d");\n    }\n    else {\n      printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n      printf("\'%s\'");\n    }\n    if (pEVar21 == (Elf_Internal_Shdr *)0x1) goto LAB_0002c274;\n    goto LAB_0002bce7;\n  }" statement_identifier : (if_statement "if (local_c0 == uVar20) {\nLAB_0002bc78:\n    pcVar13 = (char *)dcgettext();\n    printf(pcVar13);\n    if (filedata->string_table == (char *)0x0) {\n      printf("%d");\n    }\n    else {\n      printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n      printf("\'%s\'");\n    }\n    if (pEVar21 == (Elf_Internal_Shdr *)0x1) goto LAB_0002c274;\n    goto LAB_0002bce7;\n  }" if (parenthesized_expression "(local_c0 == uVar20)" ( (binary_expression "local_c0 == uVar20" identifier == identifier) )) (compound_statement "{\nLAB_0002bc78:\n    pcVar13 = (char *)dcgettext();\n    printf(pcVar13);\n    if (filedata->string_table == (char *)0x0) {\n      printf("%d");\n    }\n    else {\n      printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n      printf("\'%s\'");\n    }\n    if (pEVar21 == (Elf_Internal_Shdr *)0x1) goto LAB_0002c274;\n    goto LAB_0002bce7;\n  }" { (labeled_statement "LAB_0002bc78:\n    pcVar13 = (char *)dcgettext();" 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 "printf(pcVar13);" (call_expression "printf(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (if_statement "if (filedata->string_table == (char *)0x0) {\n      printf("%d");\n    }\n    else {\n      printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n      printf("\'%s\'");\n    }" if (parenthesized_expression "(filedata->string_table == (char *)0x0)" ( (binary_expression "filedata->string_table == (char *)0x0" (field_expression "filedata->string_table" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      printf("%d");\n    }" { (expression_statement "printf("%d");" (call_expression "printf("%d")" identifier (argument_list "("%d")" ( (string_literal ""%d"" " string_content ") ))) ;) }) (else_clause "else {\n      printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n      printf("\'%s\'");\n    }" else (compound_statement "{\n      printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n      printf("\'%s\'");\n    }" { (expression_statement "printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);" (call_expression "printable_section_name\n                ((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1)" identifier (argument_list "((Filedata *)&filedata->string_table,\n                 (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1)" ( (cast_expression "(Filedata *)&filedata->string_table" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&filedata->string_table" & (field_expression "filedata->string_table" identifier -> field_identifier))) , (cast_expression "(Elf_Internal_Shdr *)&filedata->string_table_length" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&filedata->string_table_length" & (field_expression "filedata->string_table_length" identifier -> field_identifier))) , identifier ))) ;) (expression_statement "printf("\'%s\'");" (call_expression "printf("\'%s\'")" identifier (argument_list "("\'%s\'")" ( (string_literal ""\'%s\'"" " escape_sequence string_content escape_sequence ") ))) ;) }))) (if_statement "if (pEVar21 == (Elf_Internal_Shdr *)0x1) goto LAB_0002c274;" if (parenthesized_expression "(pEVar21 == (Elf_Internal_Shdr *)0x1)" ( (binary_expression "pEVar21 == (Elf_Internal_Shdr *)0x1" identifier == (cast_expression "(Elf_Internal_Shdr *)0x1" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002c274;" goto statement_identifier ;)) (goto_statement "goto LAB_0002bce7;" goto statement_identifier ;) }))) (expression_statement "aux.info_addr._0_4_ = (uint)local_c4->sh_addr;" (assignment_expression "aux.info_addr._0_4_ = (uint)local_c4->sh_addr" (field_expression "aux.info_addr._0_4_" (field_expression "aux.info_addr" identifier . field_identifier) . field_identifier) = (cast_expression "(uint)local_c4->sh_addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_c4->sh_addr" identifier -> field_identifier))) ;) (expression_statement "aux.info_addr._4_4_ = *(int *)((int)&local_c4->sh_addr + 4);" (assignment_expression "aux.info_addr._4_4_ = *(int *)((int)&local_c4->sh_addr + 4)" (field_expression "aux.info_addr._4_4_" (field_expression "aux.info_addr" identifier . field_identifier) . field_identifier) = (pointer_expression "*(int *)((int)&local_c4->sh_addr + 4)" * (cast_expression "(int *)((int)&local_c4->sh_addr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_c4->sh_addr + 4)" ( (binary_expression "(int)&local_c4->sh_addr + 4" (cast_expression "(int)&local_c4->sh_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_c4->sh_addr" & (field_expression "local_c4->sh_addr" identifier -> field_identifier))) + number_literal) ))))) ;) (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 "aux.info = (uchar *)get_data((void *)0x0,filedata,(ulong)local_c4->sh_offset,1,local_c4->sh_size,\n                               pcVar13);" (assignment_expression "aux.info = (uchar *)get_data((void *)0x0,filedata,(ulong)local_c4->sh_offset,1,local_c4->sh_size,\n                               pcVar13)" (field_expression "aux.info" identifier . field_identifier) = (cast_expression "(uchar *)get_data((void *)0x0,filedata,(ulong)local_c4->sh_offset,1,local_c4->sh_size,\n                               pcVar13)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,filedata,(ulong)local_c4->sh_offset,1,local_c4->sh_size,\n                               pcVar13)" identifier (argument_list "((void *)0x0,filedata,(ulong)local_c4->sh_offset,1,local_c4->sh_size,\n                               pcVar13)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(ulong)local_c4->sh_offset" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_c4->sh_offset" identifier -> field_identifier)) , number_literal , (field_expression "local_c4->sh_size" identifier -> field_identifier) , identifier ))))) ;) (expression_statement "aux.info_size = 0;" (assignment_expression "aux.info_size = 0" (field_expression "aux.info_size" identifier . field_identifier) = number_literal) ;) (if_statement "if (aux.info != (uchar *)0x0) {\n    aux.info_size = (ulong)local_c4->sh_size;\n  }" if (parenthesized_expression "(aux.info != (uchar *)0x0)" ( (binary_expression "aux.info != (uchar *)0x0" (field_expression "aux.info" identifier . field_identifier) != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    aux.info_size = (ulong)local_c4->sh_size;\n  }" { (expression_statement "aux.info_size = (ulong)local_c4->sh_size;" (assignment_expression "aux.info_size = (ulong)local_c4->sh_size" (field_expression "aux.info_size" identifier . field_identifier) = (cast_expression "(ulong)local_c4->sh_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_c4->sh_size" identifier -> field_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 "printf(pcVar13);" (call_expression "printf(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (if_statement "if (filedata->string_table == (char *)0x0) {\n    printf("%d");\n  }\n  else {\n    printable_section_name\n              ((Filedata *)&filedata->string_table,\n               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n    printf("\'%s\'");\n  }" if (parenthesized_expression "(filedata->string_table == (char *)0x0)" ( (binary_expression "filedata->string_table == (char *)0x0" (field_expression "filedata->string_table" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    printf("%d");\n  }" { (expression_statement "printf("%d");" (call_expression "printf("%d")" identifier (argument_list "("%d")" ( (string_literal ""%d"" " string_content ") ))) ;) }) (else_clause "else {\n    printable_section_name\n              ((Filedata *)&filedata->string_table,\n               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n    printf("\'%s\'");\n  }" else (compound_statement "{\n    printable_section_name\n              ((Filedata *)&filedata->string_table,\n               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);\n    printf("\'%s\'");\n  }" { (expression_statement "printable_section_name\n              ((Filedata *)&filedata->string_table,\n               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1);" (call_expression "printable_section_name\n              ((Filedata *)&filedata->string_table,\n               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1)" identifier (argument_list "((Filedata *)&filedata->string_table,\n               (Elf_Internal_Shdr *)&filedata->string_table_length,filedata_1)" ( (cast_expression "(Filedata *)&filedata->string_table" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&filedata->string_table" & (field_expression "filedata->string_table" identifier -> field_identifier))) , (cast_expression "(Elf_Internal_Shdr *)&filedata->string_table_length" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&filedata->string_table_length" & (field_expression "filedata->string_table_length" identifier -> field_identifier))) , identifier ))) ;) (expression_statement "printf("\'%s\'");" (call_expression "printf("\'%s\'")" identifier (argument_list "("\'%s\'")" ( (string_literal ""\'%s\'"" " escape_sequence string_content escape_sequence ") ))) ;) }))) (expression_statement "__udivdi3();" (call_expression "__udivdi3()" identifier (argument_list "()" ( ))) ;) (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 "printf(pcVar13);" (call_expression "printf(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (expression_statement "aux.table_len = 0;" (assignment_expression "aux.table_len = 0" (field_expression "aux.table_len" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar20 = (filedata->file_header).e_phnum;" (assignment_expression "uVar20 = (filedata->file_header).e_phnum" identifier = (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar20 == 0) {\n    local_b4 = (byte *)(filedata_1->file_header).e_entry;\n    uVar20 = (uint)aux.seg_base;\n    uVar31 = aux.seg_base._4_4_;\nLAB_0002c050:\n    aux.seg_base._4_4_ = uVar31;\n    aux.seg_base._0_4_ = uVar20;\n    pcVar13 = (char *)dcgettext();\n    puVar15 = (uchar *)get_data((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13);\n    if (puVar15 != (uchar *)0x0) {\n      aux.table_len = (uint)local_b4 / (eh_addr_size * 3);\n      piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24);\n      uVar20 = eh_addr_size;\n      local_c4 = (Elf_Internal_Shdr *)puVar15;\n      aux.table = piVar16;\n      if (!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)) {\n        do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);\n      }\n      free(puVar15);\n      pEVar21 = filedata->section_headers;\n      uVar20 = (filedata->file_header).e_shnum;\n      local_c4 = pEVar21;\n      if (pEVar21 < pEVar21 + uVar20) {\n        do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);\n      }\n      if (aux.table_len != 0) {\n        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);\n        aux.nfuns = aux.nsyms;\n        if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }\n        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);\n        puVar12 = PTR_stdout_000b3fd8;\n        if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }\n        free(aux.funtab);\n      }\n    }\n  }\n  else {\n    pEVar27 = filedata->program_headers;\n    if (pEVar27 != (Elf_Internal_Phdr *)0x0) {\nLAB_0002bfdd:\n      local_b4 = (byte *)(filedata_1->file_header).e_entry;\n      pEVar33 = pEVar27 + uVar20;\n      for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;\n          pEVar27 = pEVar27 + 1) {\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }\n      goto LAB_0002c050;\n    }\n    bVar17 = get_program_headers(filedata);\n    if (bVar17 != 0) {\n      pEVar27 = filedata->program_headers;\n      uVar20 = (filedata->file_header).e_phnum;\n      goto LAB_0002bfdd;\n    }\n  }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    local_b4 = (byte *)(filedata_1->file_header).e_entry;\n    uVar20 = (uint)aux.seg_base;\n    uVar31 = aux.seg_base._4_4_;\nLAB_0002c050:\n    aux.seg_base._4_4_ = uVar31;\n    aux.seg_base._0_4_ = uVar20;\n    pcVar13 = (char *)dcgettext();\n    puVar15 = (uchar *)get_data((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13);\n    if (puVar15 != (uchar *)0x0) {\n      aux.table_len = (uint)local_b4 / (eh_addr_size * 3);\n      piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24);\n      uVar20 = eh_addr_size;\n      local_c4 = (Elf_Internal_Shdr *)puVar15;\n      aux.table = piVar16;\n      if (!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)) {\n        do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);\n      }\n      free(puVar15);\n      pEVar21 = filedata->section_headers;\n      uVar20 = (filedata->file_header).e_shnum;\n      local_c4 = pEVar21;\n      if (pEVar21 < pEVar21 + uVar20) {\n        do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);\n      }\n      if (aux.table_len != 0) {\n        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);\n        aux.nfuns = aux.nsyms;\n        if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }\n        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);\n        puVar12 = PTR_stdout_000b3fd8;\n        if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }\n        free(aux.funtab);\n      }\n    }\n  }" { (expression_statement "local_b4 = (byte *)(filedata_1->file_header).e_entry;" (assignment_expression "local_b4 = (byte *)(filedata_1->file_header).e_entry" identifier = (cast_expression "(byte *)(filedata_1->file_header).e_entry" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(filedata_1->file_header).e_entry" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "uVar20 = (uint)aux.seg_base;" (assignment_expression "uVar20 = (uint)aux.seg_base" identifier = (cast_expression "(uint)aux.seg_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.seg_base" identifier . field_identifier))) ;) (expression_statement "uVar31 = aux.seg_base._4_4_;" (assignment_expression "uVar31 = aux.seg_base._4_4_" identifier = (field_expression "aux.seg_base._4_4_" (field_expression "aux.seg_base" identifier . field_identifier) . field_identifier)) ;) (labeled_statement "LAB_0002c050:\n    aux.seg_base._4_4_ = uVar31;" statement_identifier : (expression_statement "aux.seg_base._4_4_ = uVar31;" (assignment_expression "aux.seg_base._4_4_ = uVar31" (field_expression "aux.seg_base._4_4_" (field_expression "aux.seg_base" identifier . field_identifier) . field_identifier) = identifier) ;)) (expression_statement "aux.seg_base._0_4_ = uVar20;" (assignment_expression "aux.seg_base._0_4_ = uVar20" (field_expression "aux.seg_base._0_4_" (field_expression "aux.seg_base" identifier . field_identifier) . field_identifier) = 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 "puVar15 = (uchar *)get_data((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13);" (assignment_expression "puVar15 = (uchar *)get_data((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13)" identifier = (cast_expression "(uchar *)get_data((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13)" identifier (argument_list "((void *)0x0,filedata,\n                                *(ulong *)((filedata_1->file_header).e_ident + 8),1,ZEXT48(local_b4)\n                                ,pcVar13)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (pointer_expression "*(ulong *)((filedata_1->file_header).e_ident + 8)" * (cast_expression "(ulong *)((filedata_1->file_header).e_ident + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((filedata_1->file_header).e_ident + 8)" ( (binary_expression "(filedata_1->file_header).e_ident + 8" (field_expression "(filedata_1->file_header).e_ident" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier) + number_literal) )))) , number_literal , (call_expression "ZEXT48(local_b4)" identifier (argument_list "(local_b4)" ( identifier ))) , identifier ))))) ;) (if_statement "if (puVar15 != (uchar *)0x0) {\n      aux.table_len = (uint)local_b4 / (eh_addr_size * 3);\n      piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24);\n      uVar20 = eh_addr_size;\n      local_c4 = (Elf_Internal_Shdr *)puVar15;\n      aux.table = piVar16;\n      if (!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)) {\n        do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);\n      }\n      free(puVar15);\n      pEVar21 = filedata->section_headers;\n      uVar20 = (filedata->file_header).e_shnum;\n      local_c4 = pEVar21;\n      if (pEVar21 < pEVar21 + uVar20) {\n        do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);\n      }\n      if (aux.table_len != 0) {\n        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);\n        aux.nfuns = aux.nsyms;\n        if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }\n        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);\n        puVar12 = PTR_stdout_000b3fd8;\n        if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }\n        free(aux.funtab);\n      }\n    }" if (parenthesized_expression "(puVar15 != (uchar *)0x0)" ( (binary_expression "puVar15 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      aux.table_len = (uint)local_b4 / (eh_addr_size * 3);\n      piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24);\n      uVar20 = eh_addr_size;\n      local_c4 = (Elf_Internal_Shdr *)puVar15;\n      aux.table = piVar16;\n      if (!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)) {\n        do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);\n      }\n      free(puVar15);\n      pEVar21 = filedata->section_headers;\n      uVar20 = (filedata->file_header).e_shnum;\n      local_c4 = pEVar21;\n      if (pEVar21 < pEVar21 + uVar20) {\n        do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);\n      }\n      if (aux.table_len != 0) {\n        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);\n        aux.nfuns = aux.nsyms;\n        if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }\n        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);\n        puVar12 = PTR_stdout_000b3fd8;\n        if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }\n        free(aux.funtab);\n      }\n    }" { (expression_statement "aux.table_len = (uint)local_b4 / (eh_addr_size * 3);" (assignment_expression "aux.table_len = (uint)local_b4 / (eh_addr_size * 3)" (field_expression "aux.table_len" identifier . field_identifier) = (binary_expression "(uint)local_b4 / (eh_addr_size * 3)" (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) / (parenthesized_expression "(eh_addr_size * 3)" ( (binary_expression "eh_addr_size * 3" identifier * number_literal) )))) ;) (expression_statement "piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24);" (assignment_expression "piVar16 = (ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24)" identifier = (cast_expression "(ia64_unw_table_entry *)xcmalloc(aux.table_len,0x24)" ( (type_descriptor "ia64_unw_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xcmalloc(aux.table_len,0x24)" identifier (argument_list "(aux.table_len,0x24)" ( (field_expression "aux.table_len" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "uVar20 = eh_addr_size;" (assignment_expression "uVar20 = eh_addr_size" identifier = identifier) ;) (expression_statement "local_c4 = (Elf_Internal_Shdr *)puVar15;" (assignment_expression "local_c4 = (Elf_Internal_Shdr *)puVar15" identifier = (cast_expression "(Elf_Internal_Shdr *)puVar15" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "aux.table = piVar16;" (assignment_expression "aux.table = piVar16" (field_expression "aux.table" identifier . field_identifier) = identifier) ;) (if_statement "if (!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)) {\n        do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);\n      }" if (parenthesized_expression "(!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15))" ( (unary_expression "!CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)" ! (call_expression "CARRY4((int)local_b4 + eh_addr_size * -3,(uint)puVar15)" identifier (argument_list "((int)local_b4 + eh_addr_size * -3,(uint)puVar15)" ( (binary_expression "(int)local_b4 + eh_addr_size * -3" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "eh_addr_size * -3" identifier * number_literal)) , (cast_expression "(uint)puVar15" ( (type_descriptor "uint" type_identifier) ) identifier) )))) )) (compound_statement "{\n        do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);\n      }" { (do_statement "do {\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        } while (local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3);" do (compound_statement "{\n          (piVar16->start).section = 0;\n          (piVar16->end).section = 0;\n          (piVar16->info).section = 0;\n          eVar42 = (*byte_get)((uchar *)local_c4,uVar20);\n          (piVar16->start).offset = eVar42;\n          puVar24 = (uchar *)((int)local_c4 + eh_addr_size);\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          (piVar16->end).offset = eVar42;\n          puVar24 = puVar24 + eh_addr_size;\n          eVar42 = (*byte_get)(puVar24,eh_addr_size);\n          uVar20 = eh_addr_size;\n          local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);\n          pbVar1 = &(piVar16->start).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->start).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          pbVar1 = &(piVar16->end).offset;\n          bVar9 = *pbVar1;\n          *(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;\n          piVar2 = (int *)((int)&(piVar16->end).offset + 4);\n          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);\n          paVar8 = &piVar16->info;\n          piVar16 = piVar16 + 1;\n          paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);\n        }" { (expression_statement "(piVar16->start).section = 0;" (assignment_expression "(piVar16->start).section = 0" (field_expression "(piVar16->start).section" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(piVar16->end).section = 0;" (assignment_expression "(piVar16->end).section = 0" (field_expression "(piVar16->end).section" (parenthesized_expression "(piVar16->end)" ( (field_expression "piVar16->end" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(piVar16->info).section = 0;" (assignment_expression "(piVar16->info).section = 0" (field_expression "(piVar16->info).section" (parenthesized_expression "(piVar16->info)" ( (field_expression "piVar16->info" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "eVar42 = (*byte_get)((uchar *)local_c4,uVar20);" (assignment_expression "eVar42 = (*byte_get)((uchar *)local_c4,uVar20)" identifier = (call_expression "(*byte_get)((uchar *)local_c4,uVar20)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "((uchar *)local_c4,uVar20)" ( (cast_expression "(uchar *)local_c4" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "(piVar16->start).offset = eVar42;" (assignment_expression "(piVar16->start).offset = eVar42" (field_expression "(piVar16->start).offset" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "puVar24 = (uchar *)((int)local_c4 + eh_addr_size);" (assignment_expression "puVar24 = (uchar *)((int)local_c4 + eh_addr_size)" identifier = (cast_expression "(uchar *)((int)local_c4 + eh_addr_size)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + eh_addr_size)" ( (binary_expression "(int)local_c4 + eh_addr_size" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "eVar42 = (*byte_get)(puVar24,eh_addr_size);" (assignment_expression "eVar42 = (*byte_get)(puVar24,eh_addr_size)" identifier = (call_expression "(*byte_get)(puVar24,eh_addr_size)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar24,eh_addr_size)" ( identifier , identifier )))) ;) (expression_statement "(piVar16->end).offset = eVar42;" (assignment_expression "(piVar16->end).offset = eVar42" (field_expression "(piVar16->end).offset" (parenthesized_expression "(piVar16->end)" ( (field_expression "piVar16->end" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "puVar24 = puVar24 + eh_addr_size;" (assignment_expression "puVar24 = puVar24 + eh_addr_size" identifier = (binary_expression "puVar24 + eh_addr_size" identifier + identifier)) ;) (expression_statement "eVar42 = (*byte_get)(puVar24,eh_addr_size);" (assignment_expression "eVar42 = (*byte_get)(puVar24,eh_addr_size)" identifier = (call_expression "(*byte_get)(puVar24,eh_addr_size)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar24,eh_addr_size)" ( identifier , identifier )))) ;) (expression_statement "uVar20 = eh_addr_size;" (assignment_expression "uVar20 = eh_addr_size" identifier = identifier) ;) (expression_statement "local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size);" (assignment_expression "local_c4 = (Elf_Internal_Shdr *)(puVar24 + eh_addr_size)" identifier = (cast_expression "(Elf_Internal_Shdr *)(puVar24 + eh_addr_size)" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + eh_addr_size)" ( (binary_expression "puVar24 + eh_addr_size" identifier + identifier) )))) ;) (expression_statement "pbVar1 = &(piVar16->start).offset;" (assignment_expression "pbVar1 = &(piVar16->start).offset" identifier = (pointer_expression "&(piVar16->start).offset" & (field_expression "(piVar16->start).offset" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "bVar9 = *pbVar1;" (assignment_expression "bVar9 = *pbVar1" identifier = (pointer_expression "*pbVar1" * identifier)) ;) (expression_statement "*(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;" (assignment_expression "*(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base" (pointer_expression "*(uint *)pbVar1" * (cast_expression "(uint *)pbVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)*pbVar1 + (uint)aux.seg_base" (cast_expression "(int)*pbVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pbVar1" * identifier)) + (cast_expression "(uint)aux.seg_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.seg_base" identifier . field_identifier)))) ;) (expression_statement "piVar2 = (int *)((int)&(piVar16->start).offset + 4);" (assignment_expression "piVar2 = (int *)((int)&(piVar16->start).offset + 4)" identifier = (cast_expression "(int *)((int)&(piVar16->start).offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(piVar16->start).offset + 4)" ( (binary_expression "(int)&(piVar16->start).offset + 4" (cast_expression "(int)&(piVar16->start).offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(piVar16->start).offset" & (field_expression "(piVar16->start).offset" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);" (assignment_expression "*piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base)" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base)" (binary_expression "*piVar2 + aux.seg_base._4_4_" (pointer_expression "*piVar2" * identifier) + (field_expression "aux.seg_base._4_4_" (field_expression "aux.seg_base" identifier . field_identifier) . field_identifier)) + (cast_expression "(uint)CARRY4((uint)bVar9,(uint)aux.seg_base)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)bVar9,(uint)aux.seg_base)" identifier (argument_list "((uint)bVar9,(uint)aux.seg_base)" ( (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)aux.seg_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.seg_base" identifier . field_identifier)) )))))) ;) (expression_statement "pbVar1 = &(piVar16->end).offset;" (assignment_expression "pbVar1 = &(piVar16->end).offset" identifier = (pointer_expression "&(piVar16->end).offset" & (field_expression "(piVar16->end).offset" (parenthesized_expression "(piVar16->end)" ( (field_expression "piVar16->end" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "bVar9 = *pbVar1;" (assignment_expression "bVar9 = *pbVar1" identifier = (pointer_expression "*pbVar1" * identifier)) ;) (expression_statement "*(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base;" (assignment_expression "*(uint *)pbVar1 = (int)*pbVar1 + (uint)aux.seg_base" (pointer_expression "*(uint *)pbVar1" * (cast_expression "(uint *)pbVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)*pbVar1 + (uint)aux.seg_base" (cast_expression "(int)*pbVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pbVar1" * identifier)) + (cast_expression "(uint)aux.seg_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.seg_base" identifier . field_identifier)))) ;) (expression_statement "piVar2 = (int *)((int)&(piVar16->end).offset + 4);" (assignment_expression "piVar2 = (int *)((int)&(piVar16->end).offset + 4)" identifier = (cast_expression "(int *)((int)&(piVar16->end).offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(piVar16->end).offset + 4)" ( (binary_expression "(int)&(piVar16->end).offset + 4" (cast_expression "(int)&(piVar16->end).offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(piVar16->end).offset" & (field_expression "(piVar16->end).offset" (parenthesized_expression "(piVar16->end)" ( (field_expression "piVar16->end" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base);" (assignment_expression "*piVar2 = *piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base)" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + aux.seg_base._4_4_ + (uint)CARRY4((uint)bVar9,(uint)aux.seg_base)" (binary_expression "*piVar2 + aux.seg_base._4_4_" (pointer_expression "*piVar2" * identifier) + (field_expression "aux.seg_base._4_4_" (field_expression "aux.seg_base" identifier . field_identifier) . field_identifier)) + (cast_expression "(uint)CARRY4((uint)bVar9,(uint)aux.seg_base)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)bVar9,(uint)aux.seg_base)" identifier (argument_list "((uint)bVar9,(uint)aux.seg_base)" ( (cast_expression "(uint)bVar9" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)aux.seg_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.seg_base" identifier . field_identifier)) )))))) ;) (expression_statement "paVar8 = &piVar16->info;" (assignment_expression "paVar8 = &piVar16->info" identifier = (pointer_expression "&piVar16->info" & (field_expression "piVar16->info" identifier -> field_identifier))) ;) (expression_statement "piVar16 = piVar16 + 1;" (assignment_expression "piVar16 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;) (expression_statement "paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base);" (assignment_expression "paVar8->offset = eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base)" (field_expression "paVar8->offset" identifier -> field_identifier) = (binary_expression "eVar42 + CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base)" identifier + (call_expression "CONCAT44(aux.seg_base._4_4_,(uint)aux.seg_base)" identifier (argument_list "(aux.seg_base._4_4_,(uint)aux.seg_base)" ( (field_expression "aux.seg_base._4_4_" (field_expression "aux.seg_base" identifier . field_identifier) . field_identifier) , (cast_expression "(uint)aux.seg_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.seg_base" identifier . field_identifier)) ))))) ;) }) while (parenthesized_expression "(local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3)" ( (binary_expression "local_c4 <= puVar15 + (int)local_b4 + uVar20 * -3" identifier <= (binary_expression "puVar15 + (int)local_b4 + uVar20 * -3" (binary_expression "puVar15 + (int)local_b4" identifier + (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier)) + (binary_expression "uVar20 * -3" identifier * number_literal))) )) ;) })) (expression_statement "free(puVar15);" (call_expression "free(puVar15)" identifier (argument_list "(puVar15)" ( identifier ))) ;) (expression_statement "pEVar21 = filedata->section_headers;" (assignment_expression "pEVar21 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) (expression_statement "uVar20 = (filedata->file_header).e_shnum;" (assignment_expression "uVar20 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_c4 = pEVar21;" (assignment_expression "local_c4 = pEVar21" identifier = identifier) ;) (if_statement "if (pEVar21 < pEVar21 + uVar20) {\n        do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);\n      }" if (parenthesized_expression "(pEVar21 < pEVar21 + uVar20)" ( (binary_expression "pEVar21 < pEVar21 + uVar20" identifier < (binary_expression "pEVar21 + uVar20" identifier + identifier)) )) (compound_statement "{\n        do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);\n      }" { (do_statement "do {\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        } while (local_c4 < pEVar21 + uVar20);" do (compound_statement "{\n          if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }\n          local_c4 = local_c4 + 1;\n        }" { (if_statement "if (((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))) {\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }" if (parenthesized_expression "(((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info)))" ( (binary_expression "((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)) &&\n             (filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))" (parenthesized_expression "((local_c4->sh_type == 4) && (local_c4->sh_info < uVar20))" ( (binary_expression "(local_c4->sh_type == 4) && (local_c4->sh_info < uVar20)" (parenthesized_expression "(local_c4->sh_type == 4)" ( (binary_expression "local_c4->sh_type == 4" (field_expression "local_c4->sh_type" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(local_c4->sh_info < uVar20)" ( (binary_expression "local_c4->sh_info < uVar20" (field_expression "local_c4->sh_info" identifier -> field_identifier) < identifier) ))) )) && (parenthesized_expression "(filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info))" ( (binary_expression "filedata_1 == (Filedata *)(pEVar21 + local_c4->sh_info)" identifier == (cast_expression "(Filedata *)(pEVar21 + local_c4->sh_info)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar21 + local_c4->sh_info)" ( (binary_expression "pEVar21 + local_c4->sh_info" identifier + (field_expression "local_c4->sh_info" identifier -> field_identifier)) )))) ))) )) (compound_statement "{\n            bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);\n            if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = procname;\n            local_b4 = (byte *)(void *)offset;\n            local_bc = (void *)offset;\n            if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }\n            free(local_b4);\n            pEVar21 = filedata->section_headers;\n            uVar20 = (filedata->file_header).e_shnum;\n          }" { (expression_statement "bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname);" (assignment_expression "bVar17 = slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname)" identifier = (call_expression "slurp_rela_relocs(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname)" identifier (argument_list "(filedata,(ulong)local_c4->sh_offset,(ulong)local_c4->sh_size,\n                                       (Elf_Internal_Rela **)&offset,(ulong *)&procname)" ( identifier , (cast_expression "(ulong)local_c4->sh_offset" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_c4->sh_offset" identifier -> field_identifier)) , (cast_expression "(ulong)local_c4->sh_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "local_c4->sh_size" identifier -> field_identifier)) , (cast_expression "(Elf_Internal_Rela **)&offset" ( (type_descriptor "Elf_Internal_Rela **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&offset" & identifier)) , (cast_expression "(ulong *)&procname" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&procname" & identifier)) )))) ;) (if_statement "if (bVar17 == 0) {\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n              free(aux.table);\n              aux.table = (ia64_unw_table_entry *)0x0;\n              aux.table_len = 0;\n              goto LAB_0002c236;\n            }" { (expression_statement "free(aux.table);" (call_expression "free(aux.table)" identifier (argument_list "(aux.table)" ( (field_expression "aux.table" identifier . field_identifier) ))) ;) (expression_statement "aux.table = (ia64_unw_table_entry *)0x0;" (assignment_expression "aux.table = (ia64_unw_table_entry *)0x0" (field_expression "aux.table" identifier . field_identifier) = (cast_expression "(ia64_unw_table_entry *)0x0" ( (type_descriptor "ia64_unw_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aux.table_len = 0;" (assignment_expression "aux.table_len = 0" (field_expression "aux.table_len" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002c236;" goto statement_identifier ;) })) (expression_statement "local_a0 = procname;" (assignment_expression "local_a0 = procname" identifier = identifier) ;) (expression_statement "local_b4 = (byte *)(void *)offset;" (assignment_expression "local_b4 = (byte *)(void *)offset" identifier = (cast_expression "(byte *)(void *)offset" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(void *)offset" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_bc = (void *)offset;" (assignment_expression "local_bc = (void *)offset" identifier = (cast_expression "(void *)offset" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)) {\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }" if (parenthesized_expression "((void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18))" ( (binary_expression "(void *)offset < (void *)((int)(void *)offset + (int)procname * 0x18)" (cast_expression "(void *)offset" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) < (cast_expression "(void *)((int)(void *)offset + (int)procname * 0x18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(void *)offset + (int)procname * 0x18)" ( (binary_expression "(int)(void *)offset + (int)procname * 0x18" (cast_expression "(int)(void *)offset" ( (type_descriptor "int" primitive_type) ) (cast_expression "(void *)offset" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "(int)procname * 0x18" (cast_expression "(int)procname" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) )) (compound_statement "{\n              do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));\n            }" { (do_statement "do {\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              } while (local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18));" do (compound_statement "{\n                local_ac = aux.symtab;\n                uVar20 = *(uint *)((int)local_bc + 0xc);\n                if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }\n                local_bc = (void *)((int)local_bc + 0x18);\n              }" { (expression_statement "local_ac = aux.symtab;" (assignment_expression "local_ac = aux.symtab" identifier = (field_expression "aux.symtab" identifier . field_identifier)) ;) (expression_statement "uVar20 = *(uint *)((int)local_bc + 0xc);" (assignment_expression "uVar20 = *(uint *)((int)local_bc + 0xc)" identifier = (pointer_expression "*(uint *)((int)local_bc + 0xc)" * (cast_expression "(uint *)((int)local_bc + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + 0xc)" ( (binary_expression "(int)local_bc + 0xc" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (is_32bit_elf == 0) {\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }\n                else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }" if (parenthesized_expression "(is_32bit_elf == 0)" ( (binary_expression "is_32bit_elf == 0" identifier == number_literal) )) (compound_statement "{\n                  uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);\n                  pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (bVar38) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  local_ac = local_ac + uVar20;\n                  bVar40 = false;\n                  iVar19 = 0xd;\n                  pbVar14 = (byte *)"R_IA64_SEGREL";\n                  do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);\n                  if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  uVar20 = __udivdi3();\n                  if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  __udivdi3();\n                  lVar43 = __umoddi3();\n                  piVar16 = aux.table + uVar20;\n                  iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;\n                  iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);\n                  local_ac._0_2_ = (ushort)local_ac->st_shndx;\n                  if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }\n                }" { (expression_statement "uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34);" (assignment_expression "uVar31 = get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34)" identifier = (call_expression "get_reloc_type((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34)" identifier (argument_list "((Filedata *)&(filedata->file_header).e_machine,\n                                          in_stack_ffffff34)" ( (cast_expression "(Filedata *)&(filedata->file_header).e_machine" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(filedata->file_header).e_machine" & (field_expression "(filedata->file_header).e_machine" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier))) , identifier )))) ;) (expression_statement "pbVar28 = (byte *)elf_ia64_reloc_type(uVar31);" (assignment_expression "pbVar28 = (byte *)elf_ia64_reloc_type(uVar31)" identifier = (cast_expression "(byte *)elf_ia64_reloc_type(uVar31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "elf_ia64_reloc_type(uVar31)" identifier (argument_list "(uVar31)" ( identifier ))))) ;) (expression_statement "bVar38 = pbVar28 == (byte *)0x0;" (assignment_expression "bVar38 = pbVar28 == (byte *)0x0" identifier = (binary_expression "pbVar28 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar38) goto LAB_0002c4e0;" if (parenthesized_expression "(bVar38)" ( identifier )) (goto_statement "goto LAB_0002c4e0;" goto statement_identifier ;)) (labeled_statement "LAB_0002c3b9:\n                  local_ac = local_ac + uVar20;" statement_identifier : (expression_statement "local_ac = local_ac + uVar20;" (assignment_expression "local_ac = local_ac + uVar20" identifier = (binary_expression "local_ac + uVar20" identifier + identifier)) ;)) (expression_statement "bVar40 = false;" (assignment_expression "bVar40 = false" identifier = false) ;) (expression_statement "iVar19 = 0xd;" (assignment_expression "iVar19 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)"R_IA64_SEGREL";" (assignment_expression "pbVar14 = (byte *)"R_IA64_SEGREL"" identifier = (cast_expression "(byte *)"R_IA64_SEGREL"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""R_IA64_SEGREL"" " string_content "))) ;) (do_statement "do {\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  } while (bVar38);" do (compound_statement "{\n                    if (iVar19 == 0) break;\n                    iVar19 = iVar19 + -1;\n                    bVar40 = *pbVar28 < *pbVar14;\n                    bVar38 = *pbVar28 == *pbVar14;\n                    pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;\n                    pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;\n                  }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar40 = *pbVar28 < *pbVar14;" (assignment_expression "bVar40 = *pbVar28 < *pbVar14" identifier = (binary_expression "*pbVar28 < *pbVar14" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar38 = *pbVar28 == *pbVar14;" (assignment_expression "bVar38 = *pbVar28 == *pbVar14" identifier = (binary_expression "*pbVar28 == *pbVar14" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar41 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar41 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar41 * -2" identifier + (binary_expression "(uint)bVar41 * -2" (cast_expression "(uint)bVar41" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (if_statement "if ((!bVar40 && !bVar38) != bVar40) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }" if (parenthesized_expression "((!bVar40 && !bVar38) != bVar40)" ( (binary_expression "(!bVar40 && !bVar38) != bVar40" (parenthesized_expression "(!bVar40 && !bVar38)" ( (binary_expression "!bVar40 && !bVar38" (unary_expression "!bVar40" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) != identifier) )) (compound_statement "{\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\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 "()" ( ))))) ;) (goto_statement "goto LAB_0002c4fb;" goto statement_identifier ;) })) (expression_statement "uVar20 = __udivdi3();" (assignment_expression "uVar20 = __udivdi3()" identifier = (call_expression "__udivdi3()" identifier (argument_list "()" ( )))) ;) (if_statement "if (aux.table_len <= uVar20) {\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\n                  }" if (parenthesized_expression "(aux.table_len <= uVar20)" ( (binary_expression "aux.table_len <= uVar20" (field_expression "aux.table_len" identifier . field_identifier) <= identifier) )) (compound_statement "{\n                    pcVar13 = (char *)dcgettext();\n                    goto LAB_0002c4fb;\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 "()" ( ))))) ;) (goto_statement "goto LAB_0002c4fb;" goto statement_identifier ;) })) (expression_statement "__udivdi3();" (call_expression "__udivdi3()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar43 = __umoddi3();" (assignment_expression "lVar43 = __umoddi3()" identifier = (call_expression "__umoddi3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar16 = aux.table + uVar20;" (assignment_expression "piVar16 = aux.table + uVar20" identifier = (binary_expression "aux.table + uVar20" (field_expression "aux.table" identifier . field_identifier) + identifier)) ;) (expression_statement "iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value;" (assignment_expression "iVar19 = *(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value" identifier = (binary_expression "*(uint *)((int)local_bc + 0x10) + (int)local_ac->st_value" (pointer_expression "*(uint *)((int)local_bc + 0x10)" * (cast_expression "(uint *)((int)local_bc + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + 0x10)" ( (binary_expression "(int)local_bc + 0x10" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (cast_expression "(int)local_ac->st_value" ( (type_descriptor "int" primitive_type) ) (field_expression "local_ac->st_value" identifier -> field_identifier)))) ;) (expression_statement "iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value);" (assignment_expression "iVar36 = *(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value)" identifier = (binary_expression "*(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4) +\n                           (uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value)" (binary_expression "*(int *)((int)local_bc + 0x14) + *(int *)((int)&local_ac->st_value + 4)" (pointer_expression "*(int *)((int)local_bc + 0x14)" * (cast_expression "(int *)((int)local_bc + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + 0x14)" ( (binary_expression "(int)local_bc + 0x14" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (pointer_expression "*(int *)((int)&local_ac->st_value + 4)" * (cast_expression "(int *)((int)&local_ac->st_value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_ac->st_value + 4)" ( (binary_expression "(int)&local_ac->st_value + 4" (cast_expression "(int)&local_ac->st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_ac->st_value" & (field_expression "local_ac->st_value" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value)" identifier (argument_list "(*(uint *)((int)local_bc + 0x10),(uint)local_ac->st_value)" ( (pointer_expression "*(uint *)((int)local_bc + 0x10)" * (cast_expression "(uint *)((int)local_bc + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + 0x10)" ( (binary_expression "(int)local_bc + 0x10" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (cast_expression "(uint)local_ac->st_value" ( (type_descriptor "uint" type_identifier) ) (field_expression "local_ac->st_value" identifier -> field_identifier)) )))))) ;) (expression_statement "local_ac._0_2_ = (ushort)local_ac->st_shndx;" (assignment_expression "local_ac._0_2_ = (ushort)local_ac->st_shndx" (field_expression "local_ac._0_2_" identifier . field_identifier) = (cast_expression "(ushort)local_ac->st_shndx" ( (type_descriptor "ushort" type_identifier) ) (field_expression "local_ac->st_shndx" identifier -> field_identifier))) ;) (if_statement "if (lVar43 == 1) {\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }\n                  else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }" if (parenthesized_expression "(lVar43 == 1)" ( (binary_expression "lVar43 == 1" identifier == number_literal) )) (compound_statement "{\n                    *(int *)&(piVar16->end).offset = iVar19;\n                    *(int *)((int)&(piVar16->end).offset + 4) = iVar36;\n                    (piVar16->end).section = (ushort)local_ac;\n                  }" { (expression_statement "*(int *)&(piVar16->end).offset = iVar19;" (assignment_expression "*(int *)&(piVar16->end).offset = iVar19" (pointer_expression "*(int *)&(piVar16->end).offset" * (cast_expression "(int *)&(piVar16->end).offset" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(piVar16->end).offset" & (field_expression "(piVar16->end).offset" (parenthesized_expression "(piVar16->end)" ( (field_expression "piVar16->end" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&(piVar16->end).offset + 4) = iVar36;" (assignment_expression "*(int *)((int)&(piVar16->end).offset + 4) = iVar36" (pointer_expression "*(int *)((int)&(piVar16->end).offset + 4)" * (cast_expression "(int *)((int)&(piVar16->end).offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(piVar16->end).offset + 4)" ( (binary_expression "(int)&(piVar16->end).offset + 4" (cast_expression "(int)&(piVar16->end).offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(piVar16->end).offset" & (field_expression "(piVar16->end).offset" (parenthesized_expression "(piVar16->end)" ( (field_expression "piVar16->end" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(piVar16->end).section = (ushort)local_ac;" (assignment_expression "(piVar16->end).section = (ushort)local_ac" (field_expression "(piVar16->end).section" (parenthesized_expression "(piVar16->end)" ( (field_expression "piVar16->end" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(ushort)local_ac" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) }) (else_clause "else if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }" else (if_statement "if (lVar43 == 2) {\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }\n                  else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }" if (parenthesized_expression "(lVar43 == 2)" ( (binary_expression "lVar43 == 2" identifier == number_literal) )) (compound_statement "{\n                    (piVar16->info).section = (ushort)local_ac;\n                    *(int *)&(piVar16->info).offset = iVar19;\n                    *(int *)((int)&(piVar16->info).offset + 4) = iVar36;\n                  }" { (expression_statement "(piVar16->info).section = (ushort)local_ac;" (assignment_expression "(piVar16->info).section = (ushort)local_ac" (field_expression "(piVar16->info).section" (parenthesized_expression "(piVar16->info)" ( (field_expression "piVar16->info" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(ushort)local_ac" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "*(int *)&(piVar16->info).offset = iVar19;" (assignment_expression "*(int *)&(piVar16->info).offset = iVar19" (pointer_expression "*(int *)&(piVar16->info).offset" * (cast_expression "(int *)&(piVar16->info).offset" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(piVar16->info).offset" & (field_expression "(piVar16->info).offset" (parenthesized_expression "(piVar16->info)" ( (field_expression "piVar16->info" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&(piVar16->info).offset + 4) = iVar36;" (assignment_expression "*(int *)((int)&(piVar16->info).offset + 4) = iVar36" (pointer_expression "*(int *)((int)&(piVar16->info).offset + 4)" * (cast_expression "(int *)((int)&(piVar16->info).offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(piVar16->info).offset + 4)" ( (binary_expression "(int)&(piVar16->info).offset + 4" (cast_expression "(int)&(piVar16->info).offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(piVar16->info).offset" & (field_expression "(piVar16->info).offset" (parenthesized_expression "(piVar16->info)" ( (field_expression "piVar16->info" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }" else (compound_statement "{\n                    (piVar16->start).section = (ushort)local_ac;\n                    *(int *)&(piVar16->start).offset = iVar19;\n                    *(int *)((int)&(piVar16->start).offset + 4) = iVar36;\n                  }" { (expression_statement "(piVar16->start).section = (ushort)local_ac;" (assignment_expression "(piVar16->start).section = (ushort)local_ac" (field_expression "(piVar16->start).section" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(ushort)local_ac" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (expression_statement "*(int *)&(piVar16->start).offset = iVar19;" (assignment_expression "*(int *)&(piVar16->start).offset = iVar19" (pointer_expression "*(int *)&(piVar16->start).offset" * (cast_expression "(int *)&(piVar16->start).offset" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(piVar16->start).offset" & (field_expression "(piVar16->start).offset" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&(piVar16->start).offset + 4) = iVar36;" (assignment_expression "*(int *)((int)&(piVar16->start).offset + 4) = iVar36" (pointer_expression "*(int *)((int)&(piVar16->start).offset + 4)" * (cast_expression "(int *)((int)&(piVar16->start).offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(piVar16->start).offset + 4)" ( (binary_expression "(int)&(piVar16->start).offset + 4" (cast_expression "(int)&(piVar16->start).offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(piVar16->start).offset" & (field_expression "(piVar16->start).offset" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) }))))) }) (else_clause "else {\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }" else (compound_statement "{\n                  uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;\n                  pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);\n                  bVar38 = pbVar28 == (byte *)0x0;\n                  if (!bVar38) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();\nLAB_0002c4fb:\n                  warn(pcVar13);\n                  local_b4 = (byte *)(void *)offset;\n                  local_a0 = procname;\n                }" { (expression_statement "uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18;" (assignment_expression "uVar20 = *(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18" identifier = (binary_expression "*(uint *)((int)local_bc + 8) >> 8 | uVar20 << 0x18" (binary_expression "*(uint *)((int)local_bc + 8) >> 8" (pointer_expression "*(uint *)((int)local_bc + 8)" * (cast_expression "(uint *)((int)local_bc + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + 8)" ( (binary_expression "(int)local_bc + 8" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) | (binary_expression "uVar20 << 0x18" identifier << number_literal))) ;) (expression_statement "pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff);" (assignment_expression "pbVar28 = (byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff)" identifier = (cast_expression "(byte *)elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "elf_ia64_reloc_type(*(uint *)((int)local_bc + 8) & 0xff)" identifier (argument_list "(*(uint *)((int)local_bc + 8) & 0xff)" ( (binary_expression "*(uint *)((int)local_bc + 8) & 0xff" (pointer_expression "*(uint *)((int)local_bc + 8)" * (cast_expression "(uint *)((int)local_bc + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + 8)" ( (binary_expression "(int)local_bc + 8" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) ))))) ;) (expression_statement "bVar38 = pbVar28 == (byte *)0x0;" (assignment_expression "bVar38 = pbVar28 == (byte *)0x0" identifier = (binary_expression "pbVar28 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar38) goto LAB_0002c3b9;" if (parenthesized_expression "(!bVar38)" ( (unary_expression "!bVar38" ! identifier) )) (goto_statement "goto LAB_0002c3b9;" goto statement_identifier ;)) (labeled_statement "LAB_0002c4e0:\n                  pcVar13 = (char *)dcgettext();" 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 "()" ( ))))) ;)) (labeled_statement "LAB_0002c4fb:\n                  warn(pcVar13);" statement_identifier : (expression_statement "warn(pcVar13);" (call_expression "warn(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;)) (expression_statement "local_b4 = (byte *)(void *)offset;" (assignment_expression "local_b4 = (byte *)(void *)offset" identifier = (cast_expression "(byte *)(void *)offset" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(void *)offset" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_a0 = procname;" (assignment_expression "local_a0 = procname" identifier = identifier) ;) }))) (expression_statement "local_bc = (void *)((int)local_bc + 0x18);" (assignment_expression "local_bc = (void *)((int)local_bc + 0x18)" identifier = (cast_expression "(void *)((int)local_bc + 0x18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_bc + 0x18)" ( (binary_expression "(int)local_bc + 0x18" (cast_expression "(int)local_bc" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18))" ( (binary_expression "local_bc < (void *)((int)local_b4 + (int)local_a0 * 0x18)" identifier < (cast_expression "(void *)((int)local_b4 + (int)local_a0 * 0x18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (int)local_a0 * 0x18)" ( (binary_expression "(int)local_b4 + (int)local_a0 * 0x18" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_a0 * 0x18" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) )) ;) })) (expression_statement "free(local_b4);" (call_expression "free(local_b4)" identifier (argument_list "(local_b4)" ( identifier ))) ;) (expression_statement "pEVar21 = filedata->section_headers;" (assignment_expression "pEVar21 = filedata->section_headers" identifier = (field_expression "filedata->section_headers" identifier -> field_identifier)) ;) (expression_statement "uVar20 = (filedata->file_header).e_shnum;" (assignment_expression "uVar20 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "local_c4 = local_c4 + 1;" (assignment_expression "local_c4 = local_c4 + 1" identifier = (binary_expression "local_c4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_c4 < pEVar21 + uVar20)" ( (binary_expression "local_c4 < pEVar21 + uVar20" identifier < (binary_expression "pEVar21 + uVar20" identifier + identifier)) )) ;) })) (if_statement "if (aux.table_len != 0) {\n        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);\n        aux.nfuns = aux.nsyms;\n        if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }\n        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);\n        puVar12 = PTR_stdout_000b3fd8;\n        if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }\n        free(aux.funtab);\n      }" if (parenthesized_expression "(aux.table_len != 0)" ( (binary_expression "aux.table_len != 0" (field_expression "aux.table_len" identifier . field_identifier) != number_literal) )) (compound_statement "{\n        aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);\n        aux.nfuns = aux.nsyms;\n        if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }\n        qsort(aux.funtab,aux.nfuns,0x1c,symcmp);\n        puVar12 = PTR_stdout_000b3fd8;\n        if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }\n        free(aux.funtab);\n      }" { (expression_statement "aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c);" (assignment_expression "aux.funtab = (Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c)" (field_expression "aux.funtab" identifier . field_identifier) = (cast_expression "(Elf_Internal_Sym *)xmalloc(aux.nsyms * 0x1c)" ( (type_descriptor "Elf_Internal_Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(aux.nsyms * 0x1c)" identifier (argument_list "(aux.nsyms * 0x1c)" ( (binary_expression "aux.nsyms * 0x1c" (field_expression "aux.nsyms" identifier . field_identifier) * number_literal) ))))) ;) (expression_statement "aux.nfuns = aux.nsyms;" (assignment_expression "aux.nfuns = aux.nsyms" (field_expression "aux.nfuns" identifier . field_identifier) = (field_expression "aux.nsyms" identifier . field_identifier)) ;) (if_statement "if (aux.nsyms != 0) {\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }" if (parenthesized_expression "(aux.nsyms != 0)" ( (binary_expression "aux.nsyms != 0" (field_expression "aux.nsyms" identifier . field_identifier) != number_literal) )) (compound_statement "{\n          pEVar23 = aux.symtab;\n          sVar29 = 0;\n          do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);\n        }" { (expression_statement "pEVar23 = aux.symtab;" (assignment_expression "pEVar23 = aux.symtab" identifier = (field_expression "aux.symtab" identifier . field_identifier)) ;) (expression_statement "sVar29 = 0;" (assignment_expression "sVar29 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          } while (aux.symtab + aux.nsyms != pEVar23);" do (compound_statement "{\n            iVar19 = (int)pEVar23->st_value;\n            aux.nfuns = sVar29;\n            if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }\n            pEVar23 = pEVar23 + 1;\n            sVar29 = aux.nfuns;\n          }" { (expression_statement "iVar19 = (int)pEVar23->st_value;" (assignment_expression "iVar19 = (int)pEVar23->st_value" identifier = (cast_expression "(int)pEVar23->st_value" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar23->st_value" identifier -> field_identifier))) ;) (expression_statement "aux.nfuns = sVar29;" (assignment_expression "aux.nfuns = sVar29" (field_expression "aux.nfuns" identifier . field_identifier) = identifier) ;) (if_statement "if ((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)) {\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }" if (parenthesized_expression "((iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2))" ( (binary_expression "(iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0) &&\n               ((pEVar23->st_info & 0xf) == 2)" (parenthesized_expression "(iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0)" ( (binary_expression "iVar19 != 0 || *(int *)((int)&pEVar23->st_value + 4) != 0" (binary_expression "iVar19 != 0" identifier != number_literal) || (binary_expression "*(int *)((int)&pEVar23->st_value + 4) != 0" (pointer_expression "*(int *)((int)&pEVar23->st_value + 4)" * (cast_expression "(int *)((int)&pEVar23->st_value + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar23->st_value + 4)" ( (binary_expression "(int)&pEVar23->st_value + 4" (cast_expression "(int)&pEVar23->st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar23->st_value" & (field_expression "pEVar23->st_value" identifier -> field_identifier))) + number_literal) )))) != number_literal)) )) && (parenthesized_expression "((pEVar23->st_info & 0xf) == 2)" ( (binary_expression "(pEVar23->st_info & 0xf) == 2" (parenthesized_expression "(pEVar23->st_info & 0xf)" ( (binary_expression "pEVar23->st_info & 0xf" (field_expression "pEVar23->st_info" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n              aux.nfuns = sVar29 + 1;\n              pEVar25 = aux.funtab + sVar29;\n              *(int *)&pEVar25->st_value = iVar19;\n              *(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);\n              *(int *)&pEVar25->st_size = (int)pEVar23->st_size;\n              *(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);\n              pEVar25->st_name = pEVar23->st_name;\n              uVar10 = pEVar23->st_other;\n              uVar11 = pEVar23->st_target_internal;\n              uVar37 = pEVar23->field_0x17;\n              pEVar25->st_info = pEVar23->st_info;\n              pEVar25->st_other = uVar10;\n              pEVar25->st_target_internal = uVar11;\n              pEVar25->field_0x17 = uVar37;\n              pEVar25->st_shndx = pEVar23->st_shndx;\n            }" { (expression_statement "aux.nfuns = sVar29 + 1;" (assignment_expression "aux.nfuns = sVar29 + 1" (field_expression "aux.nfuns" identifier . field_identifier) = (binary_expression "sVar29 + 1" identifier + number_literal)) ;) (expression_statement "pEVar25 = aux.funtab + sVar29;" (assignment_expression "pEVar25 = aux.funtab + sVar29" identifier = (binary_expression "aux.funtab + sVar29" (field_expression "aux.funtab" identifier . field_identifier) + identifier)) ;) (expression_statement "*(int *)&pEVar25->st_value = iVar19;" (assignment_expression "*(int *)&pEVar25->st_value = iVar19" (pointer_expression "*(int *)&pEVar25->st_value" * (cast_expression "(int *)&pEVar25->st_value" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar25->st_value" & (field_expression "pEVar25->st_value" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4);" (assignment_expression "*(undefined4 *)((int)&pEVar25->st_value + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_value + 4)" (pointer_expression "*(undefined4 *)((int)&pEVar25->st_value + 4)" * (cast_expression "(undefined4 *)((int)&pEVar25->st_value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar25->st_value + 4)" ( (binary_expression "(int)&pEVar25->st_value + 4" (cast_expression "(int)&pEVar25->st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar25->st_value" & (field_expression "pEVar25->st_value" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&pEVar23->st_value + 4)" * (cast_expression "(undefined4 *)((int)&pEVar23->st_value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar23->st_value + 4)" ( (binary_expression "(int)&pEVar23->st_value + 4" (cast_expression "(int)&pEVar23->st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar23->st_value" & (field_expression "pEVar23->st_value" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&pEVar25->st_size = (int)pEVar23->st_size;" (assignment_expression "*(int *)&pEVar25->st_size = (int)pEVar23->st_size" (pointer_expression "*(int *)&pEVar25->st_size" * (cast_expression "(int *)&pEVar25->st_size" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar25->st_size" & (field_expression "pEVar25->st_size" identifier -> field_identifier)))) = (cast_expression "(int)pEVar23->st_size" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar23->st_size" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4);" (assignment_expression "*(undefined4 *)((int)&pEVar25->st_size + 4) =\n                   *(undefined4 *)((int)&pEVar23->st_size + 4)" (pointer_expression "*(undefined4 *)((int)&pEVar25->st_size + 4)" * (cast_expression "(undefined4 *)((int)&pEVar25->st_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar25->st_size + 4)" ( (binary_expression "(int)&pEVar25->st_size + 4" (cast_expression "(int)&pEVar25->st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar25->st_size" & (field_expression "pEVar25->st_size" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&pEVar23->st_size + 4)" * (cast_expression "(undefined4 *)((int)&pEVar23->st_size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar23->st_size + 4)" ( (binary_expression "(int)&pEVar23->st_size + 4" (cast_expression "(int)&pEVar23->st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar23->st_size" & (field_expression "pEVar23->st_size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pEVar25->st_name = pEVar23->st_name;" (assignment_expression "pEVar25->st_name = pEVar23->st_name" (field_expression "pEVar25->st_name" identifier -> field_identifier) = (field_expression "pEVar23->st_name" identifier -> field_identifier)) ;) (expression_statement "uVar10 = pEVar23->st_other;" (assignment_expression "uVar10 = pEVar23->st_other" identifier = (field_expression "pEVar23->st_other" identifier -> field_identifier)) ;) (expression_statement "uVar11 = pEVar23->st_target_internal;" (assignment_expression "uVar11 = pEVar23->st_target_internal" identifier = (field_expression "pEVar23->st_target_internal" identifier -> field_identifier)) ;) (expression_statement "uVar37 = pEVar23->field_0x17;" (assignment_expression "uVar37 = pEVar23->field_0x17" identifier = (field_expression "pEVar23->field_0x17" identifier -> field_identifier)) ;) (expression_statement "pEVar25->st_info = pEVar23->st_info;" (assignment_expression "pEVar25->st_info = pEVar23->st_info" (field_expression "pEVar25->st_info" identifier -> field_identifier) = (field_expression "pEVar23->st_info" identifier -> field_identifier)) ;) (expression_statement "pEVar25->st_other = uVar10;" (assignment_expression "pEVar25->st_other = uVar10" (field_expression "pEVar25->st_other" identifier -> field_identifier) = identifier) ;) (expression_statement "pEVar25->st_target_internal = uVar11;" (assignment_expression "pEVar25->st_target_internal = uVar11" (field_expression "pEVar25->st_target_internal" identifier -> field_identifier) = identifier) ;) (expression_statement "pEVar25->field_0x17 = uVar37;" (assignment_expression "pEVar25->field_0x17 = uVar37" (field_expression "pEVar25->field_0x17" identifier -> field_identifier) = identifier) ;) (expression_statement "pEVar25->st_shndx = pEVar23->st_shndx;" (assignment_expression "pEVar25->st_shndx = pEVar23->st_shndx" (field_expression "pEVar25->st_shndx" identifier -> field_identifier) = (field_expression "pEVar23->st_shndx" identifier -> field_identifier)) ;) })) (expression_statement "pEVar23 = pEVar23 + 1;" (assignment_expression "pEVar23 = pEVar23 + 1" identifier = (binary_expression "pEVar23 + 1" identifier + number_literal)) ;) (expression_statement "sVar29 = aux.nfuns;" (assignment_expression "sVar29 = aux.nfuns" identifier = (field_expression "aux.nfuns" identifier . field_identifier)) ;) }) while (parenthesized_expression "(aux.symtab + aux.nsyms != pEVar23)" ( (binary_expression "aux.symtab + aux.nsyms != pEVar23" (binary_expression "aux.symtab + aux.nsyms" (field_expression "aux.symtab" identifier . field_identifier) + (field_expression "aux.nsyms" identifier . field_identifier)) != identifier) )) ;) })) (expression_statement "qsort(aux.funtab,aux.nfuns,0x1c,symcmp);" (call_expression "qsort(aux.funtab,aux.nfuns,0x1c,symcmp)" identifier (argument_list "(aux.funtab,aux.nfuns,0x1c,symcmp)" ( (field_expression "aux.funtab" identifier . field_identifier) , (field_expression "aux.nfuns" identifier . field_identifier) , number_literal , identifier ))) ;) (expression_statement "puVar12 = PTR_stdout_000b3fd8;" (assignment_expression "puVar12 = PTR_stdout_000b3fd8" identifier = identifier) ;) (if_statement "if (aux.table < aux.table + aux.table_len) {\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }" if (parenthesized_expression "(aux.table < aux.table + aux.table_len)" ( (binary_expression "aux.table < aux.table + aux.table_len" (field_expression "aux.table" identifier . field_identifier) < (binary_expression "aux.table + aux.table_len" (field_expression "aux.table" identifier . field_identifier) + (field_expression "aux.table_len" identifier . field_identifier))) )) (compound_statement "{\n          piVar16 = aux.table;\n          do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);\n        }" { (expression_statement "piVar16 = aux.table;" (assignment_expression "piVar16 = aux.table" identifier = (field_expression "aux.table" identifier . field_identifier)) ;) (do_statement "do {\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          } while (piVar16 < aux.table + aux.table_len);" do (compound_statement "{\n            addr._2_2_ = 0;\n            addr.section = (piVar16->start).section;\n            addr.offset._0_4_ = (int)(piVar16->start).offset;\n            addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);\n            find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);\n            fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);\n            if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }\n            uVar45 = 1;\n            puVar44 = &DAT_00078932;\n            fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);\n            print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);\n            __stream = *(FILE **)puVar12;\n            uVar45 = 0x2d;\n            fputc(0x2d,__stream);\n            print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);\n            printf("], info at +0x%lx\n");\n            if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }\nLAB_0002cbe7:\n            piVar16 = piVar16 + 1;\n          }" { (expression_statement "addr._2_2_ = 0;" (assignment_expression "addr._2_2_ = 0" (field_expression "addr._2_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "addr.section = (piVar16->start).section;" (assignment_expression "addr.section = (piVar16->start).section" (field_expression "addr.section" identifier . field_identifier) = (field_expression "(piVar16->start).section" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "addr.offset._0_4_ = (int)(piVar16->start).offset;" (assignment_expression "addr.offset._0_4_ = (int)(piVar16->start).offset" (field_expression "addr.offset._0_4_" (field_expression "addr.offset" identifier . field_identifier) . field_identifier) = (cast_expression "(int)(piVar16->start).offset" ( (type_descriptor "int" primitive_type) ) (field_expression "(piVar16->start).offset" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4);" (assignment_expression "addr.offset._4_4_ = *(undefined4 *)((int)&(piVar16->start).offset + 4)" (field_expression "addr.offset._4_4_" (field_expression "addr.offset" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&(piVar16->start).offset + 4)" * (cast_expression "(undefined4 *)((int)&(piVar16->start).offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(piVar16->start).offset + 4)" ( (binary_expression "(int)&(piVar16->start).offset + 4" (cast_expression "(int)&(piVar16->start).offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(piVar16->start).offset" & (field_expression "(piVar16->start).offset" (parenthesized_expression "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset);" (call_expression "find_symbol_for_address\n                      ((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset)" identifier (argument_list "((Filedata *)(uint)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,\n                       aux.strtab,aux.strtab_size,addr,&procname,&offset)" ( (cast_expression "(Filedata *)(uint)(filedata->file_header).e_machine" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(uint)(filedata->file_header).e_machine" (call_expression "(uint)(filedata->file_header)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) ))) . field_identifier)) , (field_expression "aux.funtab" identifier . field_identifier) , (field_expression "aux.nfuns" identifier . field_identifier) , (field_expression "aux.strtab" identifier . field_identifier) , (field_expression "aux.strtab_size" identifier . field_identifier) , identifier , (pointer_expression "&procname" & identifier) , (pointer_expression "&offset" & identifier) ))) ;) (expression_statement "fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12);" (call_expression "fwrite(&DAT_0007892a,1,2,*(FILE **)puVar12)" identifier (argument_list "(&DAT_0007892a,1,2,*(FILE **)puVar12)" ( (pointer_expression "&DAT_0007892a" & identifier) , number_literal , number_literal , (pointer_expression "*(FILE **)puVar12" * (cast_expression "(FILE **)puVar12" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (if_statement "if ((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {\n              printf("+%lx");\n            }" if (parenthesized_expression "((procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0))" ( (binary_expression "(procname != (char *)0x0) &&\n               (fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)" (parenthesized_expression "(procname != (char *)0x0)" ( (binary_expression "procname != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0)" ( (comma_expression "fputs(procname,*(FILE **)puVar12),\n               (void *)offset != (void *)0x0 || offset._4_4_ != 0" (call_expression "fputs(procname,*(FILE **)puVar12)" identifier (argument_list "(procname,*(FILE **)puVar12)" ( identifier , (pointer_expression "*(FILE **)puVar12" * (cast_expression "(FILE **)puVar12" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) , (binary_expression "(void *)offset != (void *)0x0 || offset._4_4_ != 0" (binary_expression "(void *)offset != (void *)0x0" (cast_expression "(void *)offset" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "offset._4_4_ != 0" (field_expression "offset._4_4_" identifier . field_identifier) != number_literal))) ))) )) (compound_statement "{\n              printf("+%lx");\n            }" { (expression_statement "printf("+%lx");" (call_expression "printf("+%lx")" identifier (argument_list "("+%lx")" ( (string_literal ""+%lx"" " string_content ") ))) ;) })) (expression_statement "uVar45 = 1;" (assignment_expression "uVar45 = 1" identifier = number_literal) ;) (expression_statement "puVar44 = &DAT_00078932;" (assignment_expression "puVar44 = &DAT_00078932" identifier = (pointer_expression "&DAT_00078932" & identifier)) ;) (expression_statement "fwrite(&DAT_00078932,1,4,*(FILE **)puVar12);" (call_expression "fwrite(&DAT_00078932,1,4,*(FILE **)puVar12)" identifier (argument_list "(&DAT_00078932,1,4,*(FILE **)puVar12)" ( (pointer_expression "&DAT_00078932" & identifier) , number_literal , number_literal , (pointer_expression "*(FILE **)puVar12" * (cast_expression "(FILE **)puVar12" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset);" (call_expression "print_vma(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset)" identifier (argument_list "(CONCAT44(uVar45,puVar44),(print_mode)(piVar16->start).offset)" ( (call_expression "CONCAT44(uVar45,puVar44)" identifier (argument_list "(uVar45,puVar44)" ( identifier , identifier ))) , (field_expression "(print_mode)(piVar16->start).offset" (call_expression "(print_mode)(piVar16->start)" (parenthesized_expression "(print_mode)" ( identifier )) (argument_list "(piVar16->start)" ( (field_expression "piVar16->start" identifier -> field_identifier) ))) . field_identifier) ))) ;) (expression_statement "__stream = *(FILE **)puVar12;" (assignment_expression "__stream = *(FILE **)puVar12" identifier = (pointer_expression "*(FILE **)puVar12" * (cast_expression "(FILE **)puVar12" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "uVar45 = 0x2d;" (assignment_expression "uVar45 = 0x2d" identifier = number_literal) ;) (expression_statement "fputc(0x2d,__stream);" (call_expression "fputc(0x2d,__stream)" identifier (argument_list "(0x2d,__stream)" ( number_literal , identifier ))) ;) (expression_statement "print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset);" (call_expression "print_vma(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset)" identifier (argument_list "(CONCAT44(__stream,uVar45),(print_mode)(piVar16->end).offset)" ( (call_expression "CONCAT44(__stream,uVar45)" identifier (argument_list "(__stream,uVar45)" ( identifier , identifier ))) , (field_expression "(print_mode)(piVar16->end).offset" (call_expression "(print_mode)(piVar16->end)" (parenthesized_expression "(print_mode)" ( identifier )) (argument_list "(piVar16->end)" ( (field_expression "piVar16->end" identifier -> field_identifier) ))) . field_identifier) ))) ;) (expression_statement "printf("], info at +0x%lx\n");" (call_expression "printf("], info at +0x%lx\n")" identifier (argument_list "("], info at +0x%lx\n")" ( (string_literal ""], info at +0x%lx\n"" " string_content escape_sequence ") ))) ;) (if_statement "if (aux.info != (uchar *)0x0) {\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }" if (parenthesized_expression "(aux.info != (uchar *)0x0)" ( (binary_expression "aux.info != (uchar *)0x0" (field_expression "aux.info" identifier . field_identifier) != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar3 = (piVar16->info).section;\n              uVar20 = (uint)(piVar16->info).offset;\n              uVar31 = uVar20 - (uint)aux.info_addr;\n              uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);\n              if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }\n              pcVar13 = (char *)dcgettext();\n              warn(pcVar13);\n            }" { (expression_statement "uVar3 = (piVar16->info).section;" (assignment_expression "uVar3 = (piVar16->info).section" identifier = (field_expression "(piVar16->info).section" (parenthesized_expression "(piVar16->info)" ( (field_expression "piVar16->info" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar20 = (uint)(piVar16->info).offset;" (assignment_expression "uVar20 = (uint)(piVar16->info).offset" identifier = (field_expression "(uint)(piVar16->info).offset" (call_expression "(uint)(piVar16->info)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar16->info)" ( (field_expression "piVar16->info" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "uVar31 = uVar20 - (uint)aux.info_addr;" (assignment_expression "uVar31 = uVar20 - (uint)aux.info_addr" identifier = (binary_expression "uVar20 - (uint)aux.info_addr" identifier - (cast_expression "(uint)aux.info_addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.info_addr" identifier . field_identifier)))) ;) (expression_statement "uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr);" (assignment_expression "uVar34 = (*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr)" identifier = (binary_expression "(*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_) -\n                       (uint)(uVar20 < (uint)aux.info_addr)" (parenthesized_expression "(*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_)" ( (binary_expression "*(int *)((int)&(piVar16->info).offset + 4) - aux.info_addr._4_4_" (pointer_expression "*(int *)((int)&(piVar16->info).offset + 4)" * (cast_expression "(int *)((int)&(piVar16->info).offset + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(piVar16->info).offset + 4)" ( (binary_expression "(int)&(piVar16->info).offset + 4" (cast_expression "(int)&(piVar16->info).offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(piVar16->info).offset" & (field_expression "(piVar16->info).offset" (parenthesized_expression "(piVar16->info)" ( (field_expression "piVar16->info" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) - (field_expression "aux.info_addr._4_4_" (field_expression "aux.info_addr" identifier . field_identifier) . field_identifier)) )) - (call_expression "(uint)(uVar20 < (uint)aux.info_addr)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 < (uint)aux.info_addr)" ( (binary_expression "uVar20 < (uint)aux.info_addr" identifier < (cast_expression "(uint)aux.info_addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.info_addr" identifier . field_identifier))) ))))) ;) (if_statement "if (uVar3 == 0) {\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )) (compound_statement "{\n                if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }" { (if_statement "if (uVar34 < (uVar31 < aux.info_size)) {\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }" if (parenthesized_expression "(uVar34 < (uVar31 < aux.info_size))" ( (binary_expression "uVar34 < (uVar31 < aux.info_size)" identifier < (parenthesized_expression "(uVar31 < aux.info_size)" ( (binary_expression "uVar31 < aux.info_size" identifier < (field_expression "aux.info_size" identifier . field_identifier)) ))) )) (compound_statement "{\nLAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);\n                  eVar42 = (*byte_get)(puVar15,8);\n                  uVar20 = (uint)(eVar42 >> 0x20);\n                  pcVar13 = "";\n                  if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }\n                  uVar31 = uVar20 >> 0x10;\n                  printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );\n                  if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }\n                  goto LAB_0002cbe7;\n                }" { (labeled_statement "LAB_0002cb5e:\n                  puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);" statement_identifier : (expression_statement "puVar15 = aux.info + (uVar20 - (uint)aux.info_addr);" (assignment_expression "puVar15 = aux.info + (uVar20 - (uint)aux.info_addr)" identifier = (binary_expression "aux.info + (uVar20 - (uint)aux.info_addr)" (field_expression "aux.info" identifier . field_identifier) + (parenthesized_expression "(uVar20 - (uint)aux.info_addr)" ( (binary_expression "uVar20 - (uint)aux.info_addr" identifier - (cast_expression "(uint)aux.info_addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.info_addr" identifier . field_identifier))) )))) ;)) (expression_statement "eVar42 = (*byte_get)(puVar15,8);" (assignment_expression "eVar42 = (*byte_get)(puVar15,8)" identifier = (call_expression "(*byte_get)(puVar15,8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar15,8)" ( identifier , number_literal )))) ;) (expression_statement "uVar20 = (uint)(eVar42 >> 0x20);" (assignment_expression "uVar20 = (uint)(eVar42 >> 0x20)" identifier = (call_expression "(uint)(eVar42 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(eVar42 >> 0x20)" ( (binary_expression "eVar42 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "pcVar13 = "";" (assignment_expression "pcVar13 = """ identifier = (string_literal """" " ")) ;) (if_statement "if ((eVar42 & 0x100000000) != 0) {\n                    pcVar13 = " ehandler";\n                  }" if (parenthesized_expression "((eVar42 & 0x100000000) != 0)" ( (binary_expression "(eVar42 & 0x100000000) != 0" (parenthesized_expression "(eVar42 & 0x100000000)" ( (binary_expression "eVar42 & 0x100000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    pcVar13 = " ehandler";\n                  }" { (expression_statement "pcVar13 = " ehandler";" (assignment_expression "pcVar13 = " ehandler"" identifier = (string_literal "" ehandler"" " string_content ")) ;) })) (expression_statement "uVar31 = uVar20 >> 0x10;" (assignment_expression "uVar31 = uVar20 >> 0x10" identifier = (binary_expression "uVar20 >> 0x10" identifier >> number_literal)) ;) (expression_statement "printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        );" (call_expression "printf("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        )" identifier (argument_list "("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",uVar31,uVar20 & 0xffff,pcVar13\n                        )" ( (string_literal ""  v%u, flags=0x%lx (%s%s), len=%lu bytes\n"" " string_content escape_sequence ") , identifier , (binary_expression "uVar20 & 0xffff" identifier & number_literal) , identifier ))) ;) (if_statement "if (uVar31 == 1) {\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }\n                  else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }" if (parenthesized_expression "(uVar31 == 1)" ( (binary_expression "uVar31 == 1" identifier == number_literal) )) (compound_statement "{\n                    in_body = 0;\n                    puVar24 = aux.info + aux.info_size;\n                    if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }\n                    puVar15 = puVar15 + 8;\n                    if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }\n                  }" { (expression_statement "in_body = 0;" (assignment_expression "in_body = 0" identifier = number_literal) ;) (expression_statement "puVar24 = aux.info + aux.info_size;" (assignment_expression "puVar24 = aux.info + aux.info_size" identifier = (binary_expression "aux.info + aux.info_size" (field_expression "aux.info" identifier . field_identifier) + (field_expression "aux.info_size" identifier . field_identifier))) ;) (if_statement "if (puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size) {\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }" if (parenthesized_expression "(puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size)" ( (binary_expression "puVar15 + (int)eVar42 * eh_addr_size + 8 < aux.info + aux.info_size" (binary_expression "puVar15 + (int)eVar42 * eh_addr_size + 8" (binary_expression "puVar15 + (int)eVar42 * eh_addr_size" identifier + (binary_expression "(int)eVar42 * eh_addr_size" (cast_expression "(int)eVar42" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) + number_literal) < (binary_expression "aux.info + aux.info_size" (field_expression "aux.info" identifier . field_identifier) + (field_expression "aux.info_size" identifier . field_identifier))) )) (compound_statement "{\n                      puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;\n                    }" { (expression_statement "puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8;" (assignment_expression "puVar24 = puVar15 + (int)eVar42 * eh_addr_size + 8" identifier = (binary_expression "puVar15 + (int)eVar42 * eh_addr_size + 8" (binary_expression "puVar15 + (int)eVar42 * eh_addr_size" identifier + (binary_expression "(int)eVar42 * eh_addr_size" (cast_expression "(int)eVar42" ( (type_descriptor "int" primitive_type) ) identifier) * identifier)) + number_literal)) ;) })) (expression_statement "puVar15 = puVar15 + 8;" (assignment_expression "puVar15 = puVar15 + 8" identifier = (binary_expression "puVar15 + 8" identifier + number_literal)) ;) (if_statement "if (puVar15 < puVar24) {\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }" if (parenthesized_expression "(puVar15 < puVar24)" ( (binary_expression "puVar15 < puVar24" identifier < identifier) )) (compound_statement "{\n                      do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);\n                    }" { (do_statement "do {\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      } while (puVar15 < puVar24);" do (compound_statement "{\n                        puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);\n                      }" { (expression_statement "puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24);" (assignment_expression "puVar15 = unw_decode(puVar15,in_body,&in_body,puVar24)" identifier = (call_expression "unw_decode(puVar15,in_body,&in_body,puVar24)" identifier (argument_list "(puVar15,in_body,&in_body,puVar24)" ( identifier , identifier , (pointer_expression "&in_body" & identifier) , identifier )))) ;) }) while (parenthesized_expression "(puVar15 < puVar24)" ( (binary_expression "puVar15 < puVar24" identifier < identifier) )) ;) })) }) (else_clause "else {\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\n                  }" else (compound_statement "{\n                    pcVar13 = (char *)dcgettext();\n                    printf(pcVar13);\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 "printf(pcVar13);" (call_expression "printf(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0002cbe7;" goto statement_identifier ;) })) }) (else_clause "else {\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }" else (compound_statement "{\n                uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;\n                if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }\n              }" { (expression_statement "uVar5 = (uint)filedata->section_headers[uVar3].sh_addr;" (assignment_expression "uVar5 = (uint)filedata->section_headers[uVar3].sh_addr" identifier = (cast_expression "(uint)filedata->section_headers[uVar3].sh_addr" ( (type_descriptor "uint" type_identifier) ) (field_expression "filedata->section_headers[uVar3].sh_addr" (subscript_expression "filedata->section_headers[uVar3]" (field_expression "filedata->section_headers" identifier -> field_identifier) [ identifier ]) . field_identifier))) ;) (if_statement "if (uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)) {\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }" if (parenthesized_expression "(uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size))" ( (binary_expression "uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5) < (uint)(uVar31 + uVar5 < aux.info_size)" (binary_expression "uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4) +\n                    (uint)CARRY4(uVar31,uVar5)" (binary_expression "uVar34 + *(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4)" identifier + (pointer_expression "*(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4)" * (cast_expression "(int *)((int)&filedata->section_headers[uVar3].sh_addr + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&filedata->section_headers[uVar3].sh_addr + 4)" ( (binary_expression "(int)&filedata->section_headers[uVar3].sh_addr + 4" (cast_expression "(int)&filedata->section_headers[uVar3].sh_addr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&filedata->section_headers[uVar3].sh_addr" & (field_expression "filedata->section_headers[uVar3].sh_addr" (subscript_expression "filedata->section_headers[uVar3]" (field_expression "filedata->section_headers" identifier -> field_identifier) [ identifier ]) . field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar31,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar31,uVar5)" identifier (argument_list "(uVar31,uVar5)" ( identifier , identifier ))))) < (call_expression "(uint)(uVar31 + uVar5 < aux.info_size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 + uVar5 < aux.info_size)" ( (binary_expression "uVar31 + uVar5 < aux.info_size" (binary_expression "uVar31 + uVar5" identifier + identifier) < (field_expression "aux.info_size" identifier . field_identifier)) )))) )) (compound_statement "{\n                  uVar20 = uVar5 + uVar20;\n                  goto LAB_0002cb5e;\n                }" { (expression_statement "uVar20 = uVar5 + uVar20;" (assignment_expression "uVar20 = uVar5 + uVar20" identifier = (binary_expression "uVar5 + uVar20" identifier + identifier)) ;) (goto_statement "goto LAB_0002cb5e;" 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 "warn(pcVar13);" (call_expression "warn(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) })) (labeled_statement "LAB_0002cbe7:\n            piVar16 = piVar16 + 1;" statement_identifier : (expression_statement "piVar16 = piVar16 + 1;" (assignment_expression "piVar16 = piVar16 + 1" identifier = (binary_expression "piVar16 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(piVar16 < aux.table + aux.table_len)" ( (binary_expression "piVar16 < aux.table + aux.table_len" identifier < (binary_expression "aux.table + aux.table_len" (field_expression "aux.table" identifier . field_identifier) + (field_expression "aux.table_len" identifier . field_identifier))) )) ;) })) (expression_statement "free(aux.funtab);" (call_expression "free(aux.funtab)" identifier (argument_list "(aux.funtab)" ( (field_expression "aux.funtab" identifier . field_identifier) ))) ;) })) })) }) (else_clause "else {\n    pEVar27 = filedata->program_headers;\n    if (pEVar27 != (Elf_Internal_Phdr *)0x0) {\nLAB_0002bfdd:\n      local_b4 = (byte *)(filedata_1->file_header).e_entry;\n      pEVar33 = pEVar27 + uVar20;\n      for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;\n          pEVar27 = pEVar27 + 1) {\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }\n      goto LAB_0002c050;\n    }\n    bVar17 = get_program_headers(filedata);\n    if (bVar17 != 0) {\n      pEVar27 = filedata->program_headers;\n      uVar20 = (filedata->file_header).e_phnum;\n      goto LAB_0002bfdd;\n    }\n  }" else (compound_statement "{\n    pEVar27 = filedata->program_headers;\n    if (pEVar27 != (Elf_Internal_Phdr *)0x0) {\nLAB_0002bfdd:\n      local_b4 = (byte *)(filedata_1->file_header).e_entry;\n      pEVar33 = pEVar27 + uVar20;\n      for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;\n          pEVar27 = pEVar27 + 1) {\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }\n      goto LAB_0002c050;\n    }\n    bVar17 = get_program_headers(filedata);\n    if (bVar17 != 0) {\n      pEVar27 = filedata->program_headers;\n      uVar20 = (filedata->file_header).e_phnum;\n      goto LAB_0002bfdd;\n    }\n  }" { (expression_statement "pEVar27 = filedata->program_headers;" (assignment_expression "pEVar27 = filedata->program_headers" identifier = (field_expression "filedata->program_headers" identifier -> field_identifier)) ;) (if_statement "if (pEVar27 != (Elf_Internal_Phdr *)0x0) {\nLAB_0002bfdd:\n      local_b4 = (byte *)(filedata_1->file_header).e_entry;\n      pEVar33 = pEVar27 + uVar20;\n      for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;\n          pEVar27 = pEVar27 + 1) {\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }\n      goto LAB_0002c050;\n    }" if (parenthesized_expression "(pEVar27 != (Elf_Internal_Phdr *)0x0)" ( (binary_expression "pEVar27 != (Elf_Internal_Phdr *)0x0" identifier != (cast_expression "(Elf_Internal_Phdr *)0x0" ( (type_descriptor "Elf_Internal_Phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002bfdd:\n      local_b4 = (byte *)(filedata_1->file_header).e_entry;\n      pEVar33 = pEVar27 + uVar20;\n      for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;\n          pEVar27 = pEVar27 + 1) {\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }\n      goto LAB_0002c050;\n    }" { (labeled_statement "LAB_0002bfdd:\n      local_b4 = (byte *)(filedata_1->file_header).e_entry;" statement_identifier : (expression_statement "local_b4 = (byte *)(filedata_1->file_header).e_entry;" (assignment_expression "local_b4 = (byte *)(filedata_1->file_header).e_entry" identifier = (cast_expression "(byte *)(filedata_1->file_header).e_entry" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(filedata_1->file_header).e_entry" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier))) ;)) (expression_statement "pEVar33 = pEVar27 + uVar20;" (assignment_expression "pEVar33 = pEVar27 + uVar20" identifier = (binary_expression "pEVar27 + uVar20" identifier + identifier)) ;) (for_statement "for (; uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33;\n          pEVar27 = pEVar27 + 1) {\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }" for ( ; (comma_expression "uVar20 = (uint)aux.seg_base, uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33" (assignment_expression "uVar20 = (uint)aux.seg_base" identifier = (cast_expression "(uint)aux.seg_base" ( (type_descriptor "uint" type_identifier) ) (field_expression "aux.seg_base" identifier . field_identifier))) , (comma_expression "uVar31 = aux.seg_base._4_4_, pEVar27 < pEVar33" (assignment_expression "uVar31 = aux.seg_base._4_4_" identifier = (field_expression "aux.seg_base._4_4_" (field_expression "aux.seg_base" identifier . field_identifier) . field_identifier)) , (binary_expression "pEVar27 < pEVar33" identifier < identifier))) ; (assignment_expression "pEVar27 = pEVar27 + 1" identifier = (binary_expression "pEVar27 + 1" identifier + number_literal)) ) (compound_statement "{\n        if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }\n      }" { (if_statement "if (pEVar27->p_type == 1) {\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }" if (parenthesized_expression "(pEVar27->p_type == 1)" ( (binary_expression "pEVar27->p_type == 1" (field_expression "pEVar27->p_type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          uVar20 = (uint)pEVar27->p_vaddr;\n          uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);\n          uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);\n          uVar5 = *(uint *)(filedata_1->file_header).e_ident;\n          if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;\n        }" { (expression_statement "uVar20 = (uint)pEVar27->p_vaddr;" (assignment_expression "uVar20 = (uint)pEVar27->p_vaddr" identifier = (cast_expression "(uint)pEVar27->p_vaddr" ( (type_descriptor "uint" type_identifier) ) (field_expression "pEVar27->p_vaddr" identifier -> field_identifier))) ;) (expression_statement "uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4);" (assignment_expression "uVar31 = *(uint *)((int)&pEVar27->p_vaddr + 4)" identifier = (pointer_expression "*(uint *)((int)&pEVar27->p_vaddr + 4)" * (cast_expression "(uint *)((int)&pEVar27->p_vaddr + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar27->p_vaddr + 4)" ( (binary_expression "(int)&pEVar27->p_vaddr + 4" (cast_expression "(int)&pEVar27->p_vaddr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar27->p_vaddr" & (field_expression "pEVar27->p_vaddr" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4);" (assignment_expression "uVar34 = *(uint *)((filedata_1->file_header).e_ident + 4)" identifier = (pointer_expression "*(uint *)((filedata_1->file_header).e_ident + 4)" * (cast_expression "(uint *)((filedata_1->file_header).e_ident + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((filedata_1->file_header).e_ident + 4)" ( (binary_expression "(filedata_1->file_header).e_ident + 4" (field_expression "(filedata_1->file_header).e_ident" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(filedata_1->file_header).e_ident;" (assignment_expression "uVar5 = *(uint *)(filedata_1->file_header).e_ident" identifier = (pointer_expression "*(uint *)(filedata_1->file_header).e_ident" * (cast_expression "(uint *)(filedata_1->file_header).e_ident" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(filedata_1->file_header).e_ident" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier)))) ;) (if_statement "if ((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))\n          break;" if (parenthesized_expression "((uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34))" ( (binary_expression "(uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31) &&\n             (uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34)" (parenthesized_expression "(uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31)" ( (binary_expression "uVar31 <= uVar34 && (uint)(uVar5 < uVar20) <= uVar34 - uVar31" (binary_expression "uVar31 <= uVar34" identifier <= identifier) && (binary_expression "(uint)(uVar5 < uVar20) <= uVar34 - uVar31" (call_expression "(uint)(uVar5 < uVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 < uVar20)" ( (binary_expression "uVar5 < uVar20" identifier < identifier) ))) <= (binary_expression "uVar34 - uVar31" identifier - identifier))) )) && (parenthesized_expression "(uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34)" ( (comma_expression "uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4),\n             uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34" (assignment_expression "uVar34 = uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4)" identifier = (binary_expression "uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4) +\n                       (uint)CARRY4(uVar5,(uint)local_b4)" (binary_expression "uVar34 + *(int *)((int)&(filedata_1->file_header).e_entry + 4)" identifier + (pointer_expression "*(int *)((int)&(filedata_1->file_header).e_entry + 4)" * (cast_expression "(int *)((int)&(filedata_1->file_header).e_entry + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(filedata_1->file_header).e_entry + 4)" ( (binary_expression "(int)&(filedata_1->file_header).e_entry + 4" (cast_expression "(int)&(filedata_1->file_header).e_entry" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(filedata_1->file_header).e_entry" & (field_expression "(filedata_1->file_header).e_entry" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar5,(uint)local_b4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,(uint)local_b4)" identifier (argument_list "(uVar5,(uint)local_b4)" ( identifier , (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) , (comma_expression "uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz),\n             uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34" (assignment_expression "uVar35 = uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz)" identifier = (binary_expression "uVar31 + *(int *)((int)&pEVar27->p_memsz + 4) +\n                      (uint)CARRY4(uVar20,(uint)pEVar27->p_memsz)" (binary_expression "uVar31 + *(int *)((int)&pEVar27->p_memsz + 4)" identifier + (pointer_expression "*(int *)((int)&pEVar27->p_memsz + 4)" * (cast_expression "(int *)((int)&pEVar27->p_memsz + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pEVar27->p_memsz + 4)" ( (binary_expression "(int)&pEVar27->p_memsz + 4" (cast_expression "(int)&pEVar27->p_memsz" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pEVar27->p_memsz" & (field_expression "pEVar27->p_memsz" identifier -> field_identifier))) + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar20,(uint)pEVar27->p_memsz)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar20,(uint)pEVar27->p_memsz)" identifier (argument_list "(uVar20,(uint)pEVar27->p_memsz)" ( identifier , (cast_expression "(uint)pEVar27->p_memsz" ( (type_descriptor "uint" type_identifier) ) (field_expression "pEVar27->p_memsz" identifier -> field_identifier)) )))))) , (binary_expression "uVar34 <= uVar35 &&\n             (uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34" (binary_expression "uVar34 <= uVar35" identifier <= identifier) && (binary_expression "(uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4) <= uVar35 - uVar34" (call_expression "(uint)(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4)" ( (binary_expression "uVar20 + (int)pEVar27->p_memsz < uVar5 + (int)local_b4" (binary_expression "uVar20 + (int)pEVar27->p_memsz" identifier + (cast_expression "(int)pEVar27->p_memsz" ( (type_descriptor "int" primitive_type) ) (field_expression "pEVar27->p_memsz" identifier -> field_identifier))) < (binary_expression "uVar5 + (int)local_b4" identifier + (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier))) ))) <= (binary_expression "uVar35 - uVar34" identifier - identifier))))) ))) )) (break_statement "break;" break ;)) })) })) (goto_statement "goto LAB_0002c050;" goto statement_identifier ;) })) (expression_statement "bVar17 = get_program_headers(filedata);" (assignment_expression "bVar17 = get_program_headers(filedata)" identifier = (call_expression "get_program_headers(filedata)" identifier (argument_list "(filedata)" ( identifier )))) ;) (if_statement "if (bVar17 != 0) {\n      pEVar27 = filedata->program_headers;\n      uVar20 = (filedata->file_header).e_phnum;\n      goto LAB_0002bfdd;\n    }" if (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) )) (compound_statement "{\n      pEVar27 = filedata->program_headers;\n      uVar20 = (filedata->file_header).e_phnum;\n      goto LAB_0002bfdd;\n    }" { (expression_statement "pEVar27 = filedata->program_headers;" (assignment_expression "pEVar27 = filedata->program_headers" identifier = (field_expression "filedata->program_headers" identifier -> field_identifier)) ;) (expression_statement "uVar20 = (filedata->file_header).e_phnum;" (assignment_expression "uVar20 = (filedata->file_header).e_phnum" identifier = (field_expression "(filedata->file_header).e_phnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_0002bfdd;" goto statement_identifier ;) })) }))) (if_statement "if (aux.table != (ia64_unw_table_entry *)0x0) {\n    free(aux.table);\n  }" if (parenthesized_expression "(aux.table != (ia64_unw_table_entry *)0x0)" ( (binary_expression "aux.table != (ia64_unw_table_entry *)0x0" (field_expression "aux.table" identifier . field_identifier) != (cast_expression "(ia64_unw_table_entry *)0x0" ( (type_descriptor "ia64_unw_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(aux.table);\n  }" { (expression_statement "free(aux.table);" (call_expression "free(aux.table)" identifier (argument_list "(aux.table)" ( (field_expression "aux.table" identifier . field_identifier) ))) ;) })) (labeled_statement "LAB_0002c236:\n  if (aux.info != (uchar *)0x0) {\n    free(aux.info);\n  }" statement_identifier : (if_statement "if (aux.info != (uchar *)0x0) {\n    free(aux.info);\n  }" if (parenthesized_expression "(aux.info != (uchar *)0x0)" ( (binary_expression "aux.info != (uchar *)0x0" (field_expression "aux.info" identifier . field_identifier) != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(aux.info);\n  }" { (expression_statement "free(aux.info);" (call_expression "free(aux.info)" identifier (argument_list "(aux.info)" ( (field_expression "aux.info" identifier . field_identifier) ))) ;) }))) (expression_statement "aux.table = (ia64_unw_table_entry *)0x0;" (assignment_expression "aux.table = (ia64_unw_table_entry *)0x0" (field_expression "aux.table" identifier . field_identifier) = (cast_expression "(ia64_unw_table_entry *)0x0" ( (type_descriptor "ia64_unw_table_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "aux.info = (uchar *)0x0;" (assignment_expression "aux.info = (uchar *)0x0" (field_expression "aux.info" identifier . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_90 == 0) goto LAB_0002c274;" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002c274;" goto statement_identifier ;)) (labeled_statement "LAB_0002bce7:\n  uVar20 = (filedata->file_header).e_shnum;" statement_identifier : (expression_statement "uVar20 = (filedata->file_header).e_shnum;" (assignment_expression "uVar20 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "pEVar21 = (Elf_Internal_Shdr *)local_90;" (assignment_expression "pEVar21 = (Elf_Internal_Shdr *)local_90" identifier = (cast_expression "(Elf_Internal_Shdr *)local_90" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0002bbd0;" goto statement_identifier ;) })))
(translation_unit "undefined4 FUN_0002ba30(int param_1)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  code *pcVar6;\n  char *pcVar7;\n  int *piVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int extraout_ECX;\n  int iVar12;\n  uint *puVar13;\n  uint *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte *pbVar16;\n  code *pcVar17;\n  uint uVar18;\n  code **ppcVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  byte *pbVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined8 uVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  undefined1 auStack_cc [8];\n  code *local_c4;\n  int *local_c0;\n  code *local_bc;\n  uint local_b8;\n  code *local_b4;\n  uint local_b0;\n  code *local_ac;\n  uint local_a8;\n  uint *local_a4;\n  char *local_a0;\n  void *local_9c;\n  uint local_98;\n  int *local_94;\n  byte *local_90;\n  code *local_8c;\n  char **local_88;\n  code *local_84;\n  undefined4 local_80;\n  code **local_7c;\n  undefined4 *local_78;\n  char *local_74;\n  undefined4 local_70;\n  undefined4 local_64;\n  char *local_60;\n  code *local_5c;\n  int local_58;\n  code *local_54;\n  uint local_50;\n  void *local_4c;\n  code *local_48;\n  code *local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int *local_34;\n  size_t local_30;\n  void *local_2c;\n  size_t local_28;\n  void *local_24;\n  int local_20;\n  \n  bVar28 = 0;\n  pcVar6 = (code *)FUN_0004ab89();\n  local_70 = 1;\n  ppcVar19 = &local_54;\n  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }\n  piVar8 = *(int **)(param_1 + 0x54);\n  iVar12 = *(int *)(param_1 + 0x5c);\n  if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\nLAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }\n  if (local_24 != (void *)0x0) {\n    free(local_24);\n  }\n  return local_70;\nLAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);\nLAB_0002be9a:\n  pcVar6 = local_c4;\n  if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }\n  local_44 = *(code **)((int)local_c4 + 0x10);\n  local_40 = *(uint *)((int)local_c4 + 0x14);\n  dcgettext();\n  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));\n  local_48 = (code *)0x0;\n  if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }\n  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);\n  FUN_0006b5b0();\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  local_50 = 0;\n  iVar12 = *(int *)(param_1 + 0x4c);\n  if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }\n  if (local_54 != (code *)0x0) {\n    free(local_54);\n  }\nLAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }\n  local_54 = (code *)0x0;\n  local_4c = (void *)0x0;\njoined_r0x0002c26e:\n  local_90 = local_90 + -1;\n  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;\n  piVar8 = *(int **)(param_1 + 0x54);\n  goto LAB_0002bbd0;\n}\n\n" (function_definition "undefined4 FUN_0002ba30(int param_1)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  code *pcVar6;\n  char *pcVar7;\n  int *piVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int extraout_ECX;\n  int iVar12;\n  uint *puVar13;\n  uint *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte *pbVar16;\n  code *pcVar17;\n  uint uVar18;\n  code **ppcVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  byte *pbVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined8 uVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  undefined1 auStack_cc [8];\n  code *local_c4;\n  int *local_c0;\n  code *local_bc;\n  uint local_b8;\n  code *local_b4;\n  uint local_b0;\n  code *local_ac;\n  uint local_a8;\n  uint *local_a4;\n  char *local_a0;\n  void *local_9c;\n  uint local_98;\n  int *local_94;\n  byte *local_90;\n  code *local_8c;\n  char **local_88;\n  code *local_84;\n  undefined4 local_80;\n  code **local_7c;\n  undefined4 *local_78;\n  char *local_74;\n  undefined4 local_70;\n  undefined4 local_64;\n  char *local_60;\n  code *local_5c;\n  int local_58;\n  code *local_54;\n  uint local_50;\n  void *local_4c;\n  code *local_48;\n  code *local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int *local_34;\n  size_t local_30;\n  void *local_2c;\n  size_t local_28;\n  void *local_24;\n  int local_20;\n  \n  bVar28 = 0;\n  pcVar6 = (code *)FUN_0004ab89();\n  local_70 = 1;\n  ppcVar19 = &local_54;\n  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }\n  piVar8 = *(int **)(param_1 + 0x54);\n  iVar12 = *(int *)(param_1 + 0x5c);\n  if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\nLAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }\n  if (local_24 != (void *)0x0) {\n    free(local_24);\n  }\n  return local_70;\nLAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);\nLAB_0002be9a:\n  pcVar6 = local_c4;\n  if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }\n  local_44 = *(code **)((int)local_c4 + 0x10);\n  local_40 = *(uint *)((int)local_c4 + 0x14);\n  dcgettext();\n  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));\n  local_48 = (code *)0x0;\n  if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }\n  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);\n  FUN_0006b5b0();\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  local_50 = 0;\n  iVar12 = *(int *)(param_1 + 0x4c);\n  if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }\n  if (local_54 != (code *)0x0) {\n    free(local_54);\n  }\nLAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }\n  local_54 = (code *)0x0;\n  local_4c = (void *)0x0;\njoined_r0x0002c26e:\n  local_90 = local_90 + -1;\n  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;\n  piVar8 = *(int **)(param_1 + 0x54);\n  goto LAB_0002bbd0;\n}" type_identifier (function_declarator "FUN_0002ba30(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  ushort uVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  code *pcVar6;\n  char *pcVar7;\n  int *piVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int extraout_ECX;\n  int iVar12;\n  uint *puVar13;\n  uint *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte *pbVar16;\n  code *pcVar17;\n  uint uVar18;\n  code **ppcVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  byte *pbVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined8 uVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  undefined1 auStack_cc [8];\n  code *local_c4;\n  int *local_c0;\n  code *local_bc;\n  uint local_b8;\n  code *local_b4;\n  uint local_b0;\n  code *local_ac;\n  uint local_a8;\n  uint *local_a4;\n  char *local_a0;\n  void *local_9c;\n  uint local_98;\n  int *local_94;\n  byte *local_90;\n  code *local_8c;\n  char **local_88;\n  code *local_84;\n  undefined4 local_80;\n  code **local_7c;\n  undefined4 *local_78;\n  char *local_74;\n  undefined4 local_70;\n  undefined4 local_64;\n  char *local_60;\n  code *local_5c;\n  int local_58;\n  code *local_54;\n  uint local_50;\n  void *local_4c;\n  code *local_48;\n  code *local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int *local_34;\n  size_t local_30;\n  void *local_2c;\n  size_t local_28;\n  void *local_24;\n  int local_20;\n  \n  bVar28 = 0;\n  pcVar6 = (code *)FUN_0004ab89();\n  local_70 = 1;\n  ppcVar19 = &local_54;\n  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }\n  piVar8 = *(int **)(param_1 + 0x54);\n  iVar12 = *(int *)(param_1 + 0x5c);\n  if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\nLAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }\n  if (local_24 != (void *)0x0) {\n    free(local_24);\n  }\n  return local_70;\nLAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);\nLAB_0002be9a:\n  pcVar6 = local_c4;\n  if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }\n  local_44 = *(code **)((int)local_c4 + 0x10);\n  local_40 = *(uint *)((int)local_c4 + 0x14);\n  dcgettext();\n  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));\n  local_48 = (code *)0x0;\n  if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }\n  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);\n  FUN_0006b5b0();\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  local_50 = 0;\n  iVar12 = *(int *)(param_1 + 0x4c);\n  if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }\n  if (local_54 != (code *)0x0) {\n    free(local_54);\n  }\nLAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }\n  local_54 = (code *)0x0;\n  local_4c = (void *)0x0;\njoined_r0x0002c26e:\n  local_90 = local_90 + -1;\n  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;\n  piVar8 = *(int **)(param_1 + 0x54);\n  goto LAB_0002bbd0;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "code **ppcVar19;" type_identifier (pointer_declarator "**ppcVar19" * (pointer_declarator "*ppcVar19" * identifier)) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "undefined1 uVar24;" type_identifier identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "undefined1 uVar26;" type_identifier identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "byte bVar28;" type_identifier identifier ;) (declaration "undefined8 uVar29;" type_identifier identifier ;) (declaration "longlong lVar30;" type_identifier identifier ;) (declaration "ulonglong uVar31;" type_identifier identifier ;) (declaration "undefined1 auStack_cc [8];" type_identifier (array_declarator "auStack_cc [8]" identifier [ number_literal ]) ;) (declaration "code *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "int *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "code *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "code *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "uint local_b0;" type_identifier identifier ;) (declaration "code *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "uint *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "char *local_a0;" primitive_type (pointer_declarator "*local_a0" * identifier) ;) (declaration "void *local_9c;" primitive_type (pointer_declarator "*local_9c" * identifier) ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "int *local_94;" primitive_type (pointer_declarator "*local_94" * identifier) ;) (declaration "byte *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "code *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "char **local_88;" primitive_type (pointer_declarator "**local_88" * (pointer_declarator "*local_88" * identifier)) ;) (declaration "code *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "undefined4 local_80;" type_identifier identifier ;) (declaration "code **local_7c;" type_identifier (pointer_declarator "**local_7c" * (pointer_declarator "*local_7c" * identifier)) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "char *local_74;" primitive_type (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined4 local_70;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "char *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "code *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "code *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "void *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "code *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "size_t local_30;" primitive_type identifier ;) (declaration "void *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (declaration "size_t local_28;" primitive_type identifier ;) (declaration "void *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar28 = 0;" (assignment_expression "bVar28 = 0" identifier = number_literal) ;) (expression_statement "pcVar6 = (code *)FUN_0004ab89();" (assignment_expression "pcVar6 = (code *)FUN_0004ab89()" identifier = (cast_expression "(code *)FUN_0004ab89()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004ab89()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" identifier = number_literal) ;) (expression_statement "ppcVar19 = &local_54;" (assignment_expression "ppcVar19 = &local_54" identifier = (pointer_expression "&local_54" & identifier)) ;) (for_statement "for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }" for ( (assignment_expression "iVar12 = extraout_ECX" identifier = identifier) ; (binary_expression "iVar12 != 0" identifier != number_literal) ; (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ) (compound_statement "{\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }" { (expression_statement "*ppcVar19 = pcVar6;" (assignment_expression "*ppcVar19 = pcVar6" (pointer_expression "*ppcVar19" * identifier) = identifier) ;) (expression_statement "ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;" (assignment_expression "ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "ppcVar19 + (uint)bVar28 * -2 + 1" (binary_expression "ppcVar19 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x5c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x5c)" identifier = (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }" if (parenthesized_expression "(piVar8 != (int *)0x0)" ( (binary_expression "piVar8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }" { (expression_statement "local_bc = (code *)(unaff_EBP + 0x4c725);" (assignment_expression "local_bc = (code *)(unaff_EBP + 0x4c725)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4c725)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4c725)" ( (binary_expression "unaff_EBP + 0x4c725" identifier + number_literal) )))) ;) (expression_statement "local_c4 = (code *)0x0;" (assignment_expression "local_c4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar20 = (int *)0x0;" (assignment_expression "piVar20 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a4 = (uint *)(unaff_EBP + 0x577cb);" (assignment_expression "local_a4 = (uint *)(unaff_EBP + 0x577cb)" identifier = (cast_expression "(uint *)(unaff_EBP + 0x577cb)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x577cb)" ( (binary_expression "unaff_EBP + 0x577cb" identifier + number_literal) )))) ;) (labeled_statement "LAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);" statement_identifier : (do_statement "do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);" do (compound_statement "{\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    }" { (if_statement "if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 4) == 2)" ( (binary_expression "*(int *)(iVar12 + 4) == 2" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }" { (if_statement "if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }" if (parenthesized_expression "(*(int **)(iVar12 + 0x28) < piVar8)" ( (binary_expression "*(int **)(iVar12 + 0x28) < piVar8" (pointer_expression "*(int **)(iVar12 + 0x28)" * (cast_expression "(int **)(iVar12 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }" { (if_statement "if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }" if (parenthesized_expression "(*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0)" ( (binary_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0" (pointer_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP)" * (cast_expression "(int *)(&DAT_0008a8e7 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008a8e7 + unaff_EBP)" ( (binary_expression "&DAT_0008a8e7 + unaff_EBP" (pointer_expression "&DAT_0008a8e7" & identifier) + identifier) )))) == number_literal) )) (compound_statement "{\n            local_34 = (int *)FUN_00022830();\n          }" { (expression_statement "local_34 = (int *)FUN_00022830();" (assignment_expression "local_34 = (int *)FUN_00022830()" identifier = (cast_expression "(int *)FUN_00022830()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00022830()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n            local_34 = (int *)FUN_000222e0();\n          }" else (compound_statement "{\n            local_34 = (int *)FUN_000222e0();\n          }" { (expression_statement "local_34 = (int *)FUN_000222e0();" (assignment_expression "local_34 = (int *)FUN_000222e0()" identifier = (cast_expression "(int *)FUN_000222e0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000222e0()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);" (assignment_expression "local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48)" identifier = (cast_expression "(int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48)" ( (binary_expression "*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) + (binary_expression "*(int *)(iVar12 + 0x28) * 0x48" (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) * number_literal)) )))) ;) (if_statement "if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }" if (parenthesized_expression "(local_24 != (void *)0x0)" ( (binary_expression "local_24 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }" { (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "error();" (call_expression "error()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(local_24);" (call_expression "free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) })) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8 = local_c0;" (assignment_expression "piVar8 = local_c0" identifier = identifier) ;) (expression_statement "local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);" (assignment_expression "local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9])" identifier = (cast_expression "(void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(1,0,local_c0[8],local_c0[9])" identifier (argument_list "(1,0,local_c0[8],local_c0[9])" ( number_literal , number_literal , (subscript_expression "local_c0[8]" identifier [ number_literal ]) , (subscript_expression "local_c0[9]" identifier [ number_literal ]) ))))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (if_statement "if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }" if (parenthesized_expression "(local_24 != (void *)0x0)" ( (binary_expression "local_24 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_20 = piVar8[8];\n          }" { (expression_statement "local_20 = piVar8[8];" (assignment_expression "local_20 = piVar8[8]" identifier = (subscript_expression "piVar8[8]" identifier [ number_literal ])) ;) })) (expression_statement "piVar20 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar12 = iVar12 + 0x48;" (assignment_expression "iVar12 = iVar12 + 0x48" identifier = (binary_expression "iVar12 + 0x48" identifier + number_literal)) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (piVar8 <= piVar20) break;" if (parenthesized_expression "(piVar8 <= piVar20)" ( (binary_expression "piVar8 <= piVar20" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_0002bab7;" goto statement_identifier ;) })) }) (else_clause "else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }" else (compound_statement "{\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }" { (expression_statement "local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));" (assignment_expression "local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001))" identifier = (cast_expression "(code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001))" ( (binary_expression "(int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001)" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(*(int *)(iVar12 + 4) == 0x70000001)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar12 + 4) == 0x70000001)" ( (binary_expression "*(int *)(iVar12 + 4) == 0x70000001" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) == number_literal) )))) )))) ;) }))) (expression_statement "piVar20 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar12 = iVar12 + 0x48;" (assignment_expression "iVar12 = iVar12 + 0x48" identifier = (binary_expression "iVar12 + 0x48" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar20 < piVar8)" ( (binary_expression "piVar20 < piVar8" identifier < identifier) )) ;)) (expression_statement "local_94 = (int *)0x0;" (assignment_expression "local_94 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = (byte *)((int)local_c4 - 1);" (assignment_expression "local_90 = (byte *)((int)local_c4 - 1)" identifier = (cast_expression "(byte *)((int)local_c4 - 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 - 1)" ( (binary_expression "(int)local_c4 - 1" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);" (assignment_expression "local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP)" identifier = (cast_expression "(undefined4 *)(&UNK_0008e39b + unaff_EBP)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0008e39b + unaff_EBP)" ( (binary_expression "&UNK_0008e39b + unaff_EBP" (pointer_expression "&UNK_0008e39b" & identifier) + identifier) )))) ;) (if_statement "if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }" if (parenthesized_expression "(local_c4 != (code *)0x0)" ( (binary_expression "local_c4 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }" { (labeled_statement "LAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);" statement_identifier : (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;)) (expression_statement "puVar14 = puVar13 + (int)local_94 * 0x12;" (assignment_expression "puVar14 = puVar13 + (int)local_94 * 0x12" identifier = (binary_expression "puVar13 + (int)local_94 * 0x12" identifier + (binary_expression "(int)local_94 * 0x12" (cast_expression "(int)local_94" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ;) (if_statement "if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }" if (parenthesized_expression "(piVar8 <= local_94)" ( (binary_expression "piVar8 <= local_94" identifier <= identifier) )) (compound_statement "{\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }" { (labeled_statement "LAB_0002bc1b:\n        local_a4 = puVar14;" statement_identifier : (expression_statement "local_a4 = puVar14;" (assignment_expression "local_a4 = puVar14" identifier = identifier) ;)) (expression_statement "__assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));" (call_expression "__assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f))" identifier (argument_list "((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f))" ( (cast_expression "(char *)(unaff_EBP + 0x4cf20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cf20)" ( (binary_expression "unaff_EBP + 0x4cf20" identifier + number_literal) ))) , (cast_expression "(char *)(unaff_EBP + 0x4b054)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b054)" ( (binary_expression "unaff_EBP + 0x4b054" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EBP + 0x62a1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x62a1f)" ( (binary_expression "unaff_EBP + 0x62a1f" identifier + number_literal) ))) ))) ;) })) (expression_statement "uVar15 = puVar14[1];" (assignment_expression "uVar15 = puVar14[1]" identifier = (subscript_expression "puVar14[1]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = puVar14;" (assignment_expression "local_a4 = puVar14" identifier = identifier) ;) (expression_statement "piVar20 = local_94;" (assignment_expression "piVar20 = local_94" identifier = identifier) ;) (while_statement "while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }" while (parenthesized_expression "(uVar15 != 0x70000001)" ( (binary_expression "uVar15 != 0x70000001" identifier != number_literal) )) (compound_statement "{\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }" { (expression_statement "piVar20 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (piVar20 == piVar8) goto LAB_0002bc1b;" if (parenthesized_expression "(piVar20 == piVar8)" ( (binary_expression "piVar20 == piVar8" identifier == identifier) )) (goto_statement "goto LAB_0002bc1b;" goto statement_identifier ;)) (expression_statement "uVar15 = local_a4[0x13];" (assignment_expression "uVar15 = local_a4[0x13]" identifier = (subscript_expression "local_a4[0x13]" identifier [ number_literal ])) ;) (expression_statement "local_a4 = local_a4 + 0x12;" (assignment_expression "local_a4 = local_a4 + 0x12" identifier = (binary_expression "local_a4 + 0x12" identifier + number_literal)) ;) })) (expression_statement "local_94 = (int *)((int)piVar20 + 1);" (assignment_expression "local_94 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_c0 = piVar20;" (assignment_expression "local_c0 = piVar20" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }" if (parenthesized_expression "((*(byte *)((int)local_a4 + 9) & 2) == 0)" ( (binary_expression "(*(byte *)((int)local_a4 + 9) & 2) == 0" (parenthesized_expression "(*(byte *)((int)local_a4 + 9) & 2)" ( (binary_expression "*(byte *)((int)local_a4 + 9) & 2" (pointer_expression "*(byte *)((int)local_a4 + 9)" * (cast_expression "(byte *)((int)local_a4 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a4 + 9)" ( (binary_expression "(int)local_a4 + 9" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }" { (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" identifier = (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (if_statement "if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" { (labeled_statement "LAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();" statement_identifier : (expression_statement "pbVar9 = (byte *)dcgettext();" (assignment_expression "pbVar9 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar12 = 0x16;" (assignment_expression "iVar12 = 0x16" identifier = number_literal) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar16 = (byte *)(unaff_EBP + 0x4ce73);" (assignment_expression "pbVar16 = (byte *)(unaff_EBP + 0x4ce73)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x4ce73)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ce73)" ( (binary_expression "unaff_EBP + 0x4ce73" identifier + number_literal) )))) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar9 < *pbVar16;" (assignment_expression "bVar25 = *pbVar9 < *pbVar16" identifier = (binary_expression "*pbVar9 < *pbVar16" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar27 = *pbVar9 == *pbVar16;" (assignment_expression "bVar27 = *pbVar9 == *pbVar16" identifier = (binary_expression "*pbVar9 == *pbVar16" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" identifier = (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }" { (if_statement "if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" if (parenthesized_expression "((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4))" ( (binary_expression "(uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)" (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(uint *)(param_1 + 0x68) <= *local_a4)" ( (binary_expression "*(uint *)(param_1 + 0x68) <= *local_a4" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= (pointer_expression "*local_a4" * identifier)) ))) )) (compound_statement "{\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" { (expression_statement "local_c4 = (code *)dcgettext();" (assignment_expression "local_c4 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" else (compound_statement "{\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" { (expression_statement "local_c4 = (code *)(*local_a4 + uVar15);" (assignment_expression "local_c4 = (code *)(*local_a4 + uVar15)" identifier = (cast_expression "(code *)(*local_a4 + uVar15)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_a4 + uVar15)" ( (binary_expression "*local_a4 + uVar15" (pointer_expression "*local_a4" * identifier) + identifier) )))) ;) (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) }))) (goto_statement "goto LAB_0002bd4e;" goto statement_identifier ;) })) (if_statement "if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }" { (expression_statement "uVar18 = *local_a4;" (assignment_expression "uVar18 = *local_a4" identifier = (pointer_expression "*local_a4" * identifier)) ;) (goto_statement "goto LAB_0002c5fe;" goto statement_identifier ;) })) (labeled_statement "LAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();" statement_identifier : (expression_statement "pbVar9 = (byte *)dcgettext();" (assignment_expression "pbVar9 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "iVar12 = 0xd;" (assignment_expression "iVar12 = 0xd" identifier = number_literal) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar16 = (byte *)(unaff_EBP + 0x4cea2);" (assignment_expression "pbVar16 = (byte *)(unaff_EBP + 0x4cea2)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x4cea2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cea2)" ( (binary_expression "unaff_EBP + 0x4cea2" identifier + number_literal) )))) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar9 < *pbVar16;" (assignment_expression "bVar25 = *pbVar9 < *pbVar16" identifier = (binary_expression "*pbVar9 < *pbVar16" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "bVar27 = *pbVar9 == *pbVar16;" (assignment_expression "bVar27 = *pbVar9 == *pbVar16" identifier = (binary_expression "*pbVar9 == *pbVar16" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }" { (if_statement "if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }" if (parenthesized_expression "((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4))" ( (binary_expression "(*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)" (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(uint *)(param_1 + 0x68) <= *local_a4)" ( (binary_expression "*(uint *)(param_1 + 0x68) <= *local_a4" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= (pointer_expression "*local_a4" * identifier)) ))) )) (compound_statement "{\n              pbVar9 = (byte *)dcgettext();\n            }" { (expression_statement "pbVar9 = (byte *)dcgettext();" (assignment_expression "pbVar9 = (byte *)dcgettext()" identifier = (cast_expression "(byte *)dcgettext()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }" else (compound_statement "{\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }" { (expression_statement "pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));" (assignment_expression "pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100))" identifier = (cast_expression "(byte *)(*local_a4 + *(int *)(param_1 + 100))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_a4 + *(int *)(param_1 + 100))" ( (binary_expression "*local_a4 + *(int *)(param_1 + 100)" (pointer_expression "*local_a4" * identifier) + (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) )))) ;) }))) (labeled_statement "LAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);" statement_identifier : (expression_statement "local_b4 = (code *)(pbVar9 + 0xd);" (assignment_expression "local_b4 = (code *)(pbVar9 + 0xd)" identifier = (cast_expression "(code *)(pbVar9 + 0xd)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar9 + 0xd)" ( (binary_expression "pbVar9 + 0xd" identifier + number_literal) )))) ;)) }) (else_clause "else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }" else (compound_statement "{\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }" { (labeled_statement "LAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);" statement_identifier : (expression_statement "local_b4 = (code *)(&UNK_00050218 + unaff_EBP);" (assignment_expression "local_b4 = (code *)(&UNK_00050218 + unaff_EBP)" identifier = (cast_expression "(code *)(&UNK_00050218 + unaff_EBP)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00050218 + unaff_EBP)" ( (binary_expression "&UNK_00050218 + unaff_EBP" (pointer_expression "&UNK_00050218" & identifier) + identifier) )))) ;)) }))) (expression_statement "local_c4 = *(code **)(param_1 + 0x5c);" (assignment_expression "local_c4 = *(code **)(param_1 + 0x5c)" identifier = (pointer_expression "*(code **)(param_1 + 0x5c)" * (cast_expression "(code **)(param_1 + 0x5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;" if (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" ( (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002bc78;" goto statement_identifier ;)) (expression_statement "local_bc = FUN_0004ce60 + unaff_EBP;" (assignment_expression "local_bc = FUN_0004ce60 + unaff_EBP" identifier = (binary_expression "FUN_0004ce60 + unaff_EBP" identifier + identifier)) ;) (expression_statement "local_c0 = (int *)0x0;" (assignment_expression "local_c0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (code *)(unaff_EBP + 0x4b0b1);" (assignment_expression "local_ac = (code *)(unaff_EBP + 0x4b0b1)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4b0b1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b0b1)" ( (binary_expression "unaff_EBP + 0x4b0b1" identifier + number_literal) )))) ;) (expression_statement "local_9c = (void *)(unaff_EBP + 0x4b727);" (assignment_expression "local_9c = (void *)(unaff_EBP + 0x4b727)" identifier = (cast_expression "(void *)(unaff_EBP + 0x4b727)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b727)" ( (binary_expression "unaff_EBP + 0x4b727" identifier + number_literal) )))) ;) (do_statement "do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);" do (compound_statement "{\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          }" { (if_statement "if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 == (code *)0x0)" ( (binary_expression "local_c4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }" { (expression_statement "uVar24 = auStack_cc < (undefined1 *)0x4;" (assignment_expression "uVar24 = auStack_cc < (undefined1 *)0x4" identifier = (binary_expression "auStack_cc < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar26 = &stack0x00000000 == (undefined1 *)0xd0;" (assignment_expression "uVar26 = &stack0x00000000 == (undefined1 *)0xd0" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xd0" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xd0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4b720);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4b720)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4b720)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b720)" ( (binary_expression "unaff_EBP + 0x4b720" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar12 = 0x12;" (assignment_expression "iVar12 = 0x12" identifier = number_literal) ;) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" identifier = identifier) ;) (do_statement "do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);" do (compound_statement "{\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "uVar24 = (byte)*pcVar6 < (byte)*pcVar17" identifier = (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "uVar26 = *pcVar6 == *pcVar17;" (assignment_expression "uVar26 = *pcVar6 == *pcVar17" identifier = (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" * identifier) == (pointer_expression "*pcVar17" * identifier))) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar26)" ( (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }" if (parenthesized_expression "((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24)" ( (binary_expression "(!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar26)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar26" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar26" ! (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0002c699;" goto statement_identifier ;) })) }) (else_clause "else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" else (compound_statement "{\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" { (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" identifier = (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (if_statement "if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" if (parenthesized_expression "((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 )" ( (binary_expression "(uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" ( (comma_expression "uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18" (assignment_expression "uVar18 = *(uint *)local_c4" identifier = (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) , (binary_expression "*(uint *)(param_1 + 0x68) <= uVar18" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= identifier)) ))) )) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x12;" (assignment_expression "iVar12 = 0x12" identifier = number_literal) ;) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" identifier = identifier) ;) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" do (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "bVar25 = (byte)*pcVar6 < (byte)*pcVar17" identifier = (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar6 == *pcVar17;" (assignment_expression "bVar27 = *pcVar6 == *pcVar17" identifier = (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" * identifier) == (pointer_expression "*pcVar17" * identifier))) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }" { (if_statement "if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" if (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" else (if_statement "if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" if (parenthesized_expression "(*(uint *)local_c4 < *(uint *)(param_1 + 0x68))" ( (binary_expression "*(uint *)local_c4 < *(uint *)(param_1 + 0x68)" (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }" { (expression_statement "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);" (assignment_expression "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" identifier = (cast_expression "(code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 100) + *(uint *)local_c4)" ( (binary_expression "*(int *)(param_1 + 100) + *(uint *)local_c4" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) + (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )))) ;) }) (else_clause "else {\n                    pcVar6 = (code *)dcgettext();\n                  }" else (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }))))) (goto_statement "goto LAB_0002c699;" goto statement_identifier ;) })) }) (else_clause "else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" else (compound_statement "{\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" { (expression_statement "bVar25 = CARRY4(uVar15,uVar18);" (assignment_expression "bVar25 = CARRY4(uVar15,uVar18)" identifier = (call_expression "CARRY4(uVar15,uVar18)" identifier (argument_list "(uVar15,uVar18)" ( identifier , identifier )))) ;) (expression_statement "pcVar6 = (code *)(uVar15 + uVar18);" (assignment_expression "pcVar6 = (code *)(uVar15 + uVar18)" identifier = (cast_expression "(code *)(uVar15 + uVar18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + uVar18)" ( (binary_expression "uVar15 + uVar18" identifier + identifier) )))) ;) (expression_statement "bVar27 = pcVar6 == (code *)0x0;" (assignment_expression "bVar27 = pcVar6 == (code *)0x0" identifier = (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x12;" (assignment_expression "iVar12 = 0x12" identifier = number_literal) ;) (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar11 = local_bc;" (assignment_expression "pcVar11 = local_bc" identifier = identifier) ;) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" do (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar25 = (byte)*pcVar17 < (byte)*pcVar11" identifier = (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar17 == *pcVar11;" (assignment_expression "bVar27 = *pcVar17 == *pcVar11" identifier = (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" * identifier) == (pointer_expression "*pcVar11" * identifier))) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" { (labeled_statement "LAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);" statement_identifier : (expression_statement "iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);" (assignment_expression "iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4)" identifier = (call_expression "strcmp((char *)(pcVar6 + 0x12),(char *)local_b4)" identifier (argument_list "((char *)(pcVar6 + 0x12),(char *)local_b4)" ( (cast_expression "(char *)(pcVar6 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x12)" ( (binary_expression "pcVar6 + 0x12" identifier + number_literal) ))) , (cast_expression "(char *)local_b4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar12 == 0) goto LAB_0002be90;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002be90;" goto statement_identifier ;)) })) }))) }))) (expression_statement "local_c0 = (int *)((int)local_c0 + 1);" (assignment_expression "local_c0 = (int *)((int)local_c0 + 1)" identifier = (cast_expression "(int *)((int)local_c0 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c0 + 1)" ( (binary_expression "(int)local_c0 + 1" (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_c4 = (code *)((int)local_c4 + 0x48);" (assignment_expression "local_c4 = (code *)((int)local_c4 + 0x48)" identifier = (cast_expression "(code *)((int)local_c4 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x48)" ( (binary_expression "(int)local_c4 + 0x48" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_c0 < piVar8)" ( (binary_expression "local_c0 < piVar8" identifier < identifier) )) ;) }) (else_clause "else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" else (compound_statement "{\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" { (expression_statement "uVar18 = *local_a4;" (assignment_expression "uVar18 = *local_a4" identifier = (pointer_expression "*local_a4" * identifier)) ;) (expression_statement "bVar25 = uVar18 < *(uint *)(param_1 + 0x68);" (assignment_expression "bVar25 = uVar18 < *(uint *)(param_1 + 0x68)" identifier = (binary_expression "uVar18 < *(uint *)(param_1 + 0x68)" identifier < (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))))) ;) (expression_statement "bVar27 = uVar18 == *(uint *)(param_1 + 0x68);" (assignment_expression "bVar27 = uVar18 == *(uint *)(param_1 + 0x68)" identifier = (binary_expression "uVar18 == *(uint *)(param_1 + 0x68)" identifier == (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))))) ;) (if_statement "if (!bVar25) goto LAB_0002c92b;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_0002c92b;" goto statement_identifier ;)) (expression_statement "local_c4 = (code *)(uVar15 + uVar18);" (assignment_expression "local_c4 = (code *)(uVar15 + uVar18)" identifier = (cast_expression "(code *)(uVar15 + uVar18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + uVar18)" ( (binary_expression "uVar15 + uVar18" identifier + identifier) )))) ;) (expression_statement "iVar12 = 0x16;" (assignment_expression "iVar12 = 0x16" identifier = number_literal) ;) (expression_statement "puVar14 = (uint *)local_c4;" (assignment_expression "puVar14 = (uint *)local_c4" identifier = (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar9 = (byte *)(unaff_EBP + 0x4ce73);" (assignment_expression "pbVar9 = (byte *)(unaff_EBP + 0x4ce73)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x4ce73)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ce73)" ( (binary_expression "unaff_EBP + 0x4ce73" identifier + number_literal) )))) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*puVar14 < *pbVar9;" (assignment_expression "bVar25 = (byte)*puVar14 < *pbVar9" identifier = (binary_expression "(byte)*puVar14 < *pbVar9" (binary_expression "(byte)*puVar14" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "bVar27 = (byte)*puVar14 == *pbVar9;" (assignment_expression "bVar27 = (byte)*puVar14 == *pbVar9" identifier = (binary_expression "(byte)*puVar14 == *pbVar9" (binary_expression "(byte)*puVar14" (parenthesized_expression "(byte)" ( identifier )) * identifier) == (pointer_expression "*pbVar9" * identifier))) ;) (expression_statement "puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);" (assignment_expression "puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1)" identifier = (cast_expression "(uint *)((int)puVar14 + (uint)bVar28 * -2 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar14 + (uint)bVar28 * -2 + 1)" ( (binary_expression "(int)puVar14 + (uint)bVar28 * -2 + 1" (binary_expression "(int)puVar14 + (uint)bVar28 * -2" (cast_expression "(int)puVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }" if (parenthesized_expression "((!bVar25 && !bVar27) != bVar25)" ( (binary_expression "(!bVar25 && !bVar27) != bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) != identifier) )) (compound_statement "{\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }" { (labeled_statement "LAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;" statement_identifier : (if_statement "if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;" if (parenthesized_expression "(*(uint *)(param_1 + 0x68) <= uVar18)" ( (binary_expression "*(uint *)(param_1 + 0x68) <= uVar18" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_0002c9ae;" goto statement_identifier ;))) (expression_statement "bVar25 = CARRY4(uVar18,uVar15);" (assignment_expression "bVar25 = CARRY4(uVar18,uVar15)" identifier = (call_expression "CARRY4(uVar18,uVar15)" identifier (argument_list "(uVar18,uVar15)" ( identifier , identifier )))) ;) (expression_statement "pbVar9 = (byte *)(uVar18 + uVar15);" (assignment_expression "pbVar9 = (byte *)(uVar18 + uVar15)" identifier = (cast_expression "(byte *)(uVar18 + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar18 + uVar15)" ( (binary_expression "uVar18 + uVar15" identifier + identifier) )))) ;) (expression_statement "bVar27 = pbVar9 == (byte *)0x0;" (assignment_expression "bVar27 = pbVar9 == (byte *)0x0" identifier = (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0xd;" (assignment_expression "iVar12 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar16 = pbVar9;" (assignment_expression "pbVar16 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)(unaff_EBP + 0x4cea2);" (assignment_expression "pbVar23 = (byte *)(unaff_EBP + 0x4cea2)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x4cea2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cea2)" ( (binary_expression "unaff_EBP + 0x4cea2" identifier + number_literal) )))) ;) (do_statement "do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);" do (compound_statement "{\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar16 < *pbVar23;" (assignment_expression "bVar25 = *pbVar16 < *pbVar23" identifier = (binary_expression "*pbVar16 < *pbVar23" (pointer_expression "*pbVar16" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar27 = *pbVar16 == *pbVar23;" (assignment_expression "bVar27 = *pbVar16 == *pbVar23" identifier = (binary_expression "*pbVar16 == *pbVar23" (pointer_expression "*pbVar16" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002ca17;" goto statement_identifier ;)) (goto_statement "goto LAB_0002c62d;" goto statement_identifier ;) })) (labeled_statement "LAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);" statement_identifier : (expression_statement "local_b4 = (code *)((int)local_c4 + 0x16);" (assignment_expression "local_b4 = (code *)((int)local_c4 + 0x16)" identifier = (cast_expression "(code *)((int)local_c4 + 0x16)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x16)" ( (binary_expression "(int)local_c4 + 0x16" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "local_c4 = (code *)puVar13;" (assignment_expression "local_c4 = (code *)puVar13" identifier = (cast_expression "(code *)puVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;" if (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" ( (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" * (cast_expression "(int *)(param_1 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002bc78;" goto statement_identifier ;)) (expression_statement "local_bc = (code *)(unaff_EBP + 0x4ce8a);" (assignment_expression "local_bc = (code *)(unaff_EBP + 0x4ce8a)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4ce8a)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ce8a)" ( (binary_expression "unaff_EBP + 0x4ce8a" identifier + number_literal) )))) ;) (expression_statement "local_c0 = (int *)0x0;" (assignment_expression "local_c0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (code *)(unaff_EBP + 0x4b0b1);" (assignment_expression "local_ac = (code *)(unaff_EBP + 0x4b0b1)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4b0b1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b0b1)" ( (binary_expression "unaff_EBP + 0x4b0b1" identifier + number_literal) )))) ;) (expression_statement "local_9c = (void *)(unaff_EBP + 0x4b727);" (assignment_expression "local_9c = (void *)(unaff_EBP + 0x4b727)" identifier = (cast_expression "(void *)(unaff_EBP + 0x4b727)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b727)" ( (binary_expression "unaff_EBP + 0x4b727" identifier + number_literal) )))) ;) (do_statement "do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);" do (compound_statement "{\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          }" { (if_statement "if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" if (parenthesized_expression "(local_c4 == (code *)0x0)" ( (binary_expression "local_c4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }" { (expression_statement "uVar24 = auStack_cc < (undefined1 *)0x4;" (assignment_expression "uVar24 = auStack_cc < (undefined1 *)0x4" identifier = (binary_expression "auStack_cc < (undefined1 *)0x4" identifier < (cast_expression "(undefined1 *)0x4" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar26 = &stack0x00000000 == (undefined1 *)0xd0;" (assignment_expression "uVar26 = &stack0x00000000 == (undefined1 *)0xd0" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xd0" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xd0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4b720);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4b720)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4b720)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b720)" ( (binary_expression "unaff_EBP + 0x4b720" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar12 = 0x17;" (assignment_expression "iVar12 = 0x17" identifier = number_literal) ;) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" identifier = identifier) ;) (do_statement "do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);" do (compound_statement "{\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "uVar24 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "uVar24 = (byte)*pcVar6 < (byte)*pcVar17" identifier = (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "uVar26 = *pcVar6 == *pcVar17;" (assignment_expression "uVar26 = *pcVar6 == *pcVar17" identifier = (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" * identifier) == (pointer_expression "*pcVar17" * identifier))) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar26)" ( (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }" if (parenthesized_expression "((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24)" ( (binary_expression "(!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar26)" ( (binary_expression "!(bool)uVar24 && !(bool)uVar26" (unary_expression "!(bool)uVar24" ! (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar26" ! (cast_expression "(bool)uVar26" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar24" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0002bdb1;" goto statement_identifier ;) })) }) (else_clause "else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" else (compound_statement "{\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" { (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" identifier = (pointer_expression "*(uint *)(param_1 + 100)" * (cast_expression "(uint *)(param_1 + 100)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) ))))) ;) (if_statement "if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" if (parenthesized_expression "((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 )" ( (binary_expression "(uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" ( (comma_expression "uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18" (assignment_expression "uVar18 = *(uint *)local_c4" identifier = (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) , (binary_expression "*(uint *)(param_1 + 0x68) <= uVar18" (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))) <= identifier)) ))) )) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0xcc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x17;" (assignment_expression "iVar12 = 0x17" identifier = number_literal) ;) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" identifier = identifier) ;) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" do (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "bVar25 = (byte)*pcVar6 < (byte)*pcVar17" identifier = (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar6 == *pcVar17;" (assignment_expression "bVar27 = *pcVar6 == *pcVar17" identifier = (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" * identifier) == (pointer_expression "*pcVar17" * identifier))) ;) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }" { (if_statement "if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" if (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" else (if_statement "if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" if (parenthesized_expression "(*(uint *)local_c4 < *(uint *)(param_1 + 0x68))" ( (binary_expression "*(uint *)local_c4 < *(uint *)(param_1 + 0x68)" (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }" { (expression_statement "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);" (assignment_expression "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" identifier = (cast_expression "(code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 100) + *(uint *)local_c4)" ( (binary_expression "*(int *)(param_1 + 100) + *(uint *)local_c4" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) + (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )))) ;) }) (else_clause "else {\n                    pcVar6 = (code *)dcgettext();\n                  }" else (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" { (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) }))))) (goto_statement "goto LAB_0002bdb1;" goto statement_identifier ;) })) }) (else_clause "else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" else (compound_statement "{\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" { (expression_statement "bVar25 = CARRY4(uVar15,uVar18);" (assignment_expression "bVar25 = CARRY4(uVar15,uVar18)" identifier = (call_expression "CARRY4(uVar15,uVar18)" identifier (argument_list "(uVar15,uVar18)" ( identifier , identifier )))) ;) (expression_statement "pcVar6 = (code *)(uVar15 + uVar18);" (assignment_expression "pcVar6 = (code *)(uVar15 + uVar18)" identifier = (cast_expression "(code *)(uVar15 + uVar18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + uVar18)" ( (binary_expression "uVar15 + uVar18" identifier + identifier) )))) ;) (expression_statement "bVar27 = pcVar6 == (code *)0x0;" (assignment_expression "bVar27 = pcVar6 == (code *)0x0" identifier = (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x17;" (assignment_expression "iVar12 = 0x17" identifier = number_literal) ;) (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar11 = local_bc;" (assignment_expression "pcVar11 = local_bc" identifier = identifier) ;) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" do (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar25 = (byte)*pcVar17 < (byte)*pcVar11" identifier = (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar17 == *pcVar11;" (assignment_expression "bVar27 = *pcVar17 == *pcVar11" identifier = (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" * identifier) == (pointer_expression "*pcVar11" * identifier))) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" { (labeled_statement "LAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);" statement_identifier : (expression_statement "iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);" (assignment_expression "iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4)" identifier = (call_expression "strcmp((char *)(pcVar6 + 0x17),(char *)local_b4)" identifier (argument_list "((char *)(pcVar6 + 0x17),(char *)local_b4)" ( (cast_expression "(char *)(pcVar6 + 0x17)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x17)" ( (binary_expression "pcVar6 + 0x17" identifier + number_literal) ))) , (cast_expression "(char *)local_b4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (iVar12 == 0) goto LAB_0002be90;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002be90;" goto statement_identifier ;)) })) }))) }))) (expression_statement "local_c0 = (int *)((int)local_c0 + 1);" (assignment_expression "local_c0 = (int *)((int)local_c0 + 1)" identifier = (cast_expression "(int *)((int)local_c0 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c0 + 1)" ( (binary_expression "(int)local_c0 + 1" (cast_expression "(int)local_c0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_c4 = (code *)((int)local_c4 + 0x48);" (assignment_expression "local_c4 = (code *)((int)local_c4 + 0x48)" identifier = (cast_expression "(code *)((int)local_c4 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x48)" ( (binary_expression "(int)local_c4 + 0x48" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_c0 < piVar8)" ( (binary_expression "local_c0 < piVar8" identifier < identifier) )) ;) }))) (goto_statement "goto LAB_0002be9a;" goto statement_identifier ;) })) (if_statement "if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }" if (parenthesized_expression "(((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0))" ( (binary_expression "((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)" (parenthesized_expression "((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0))" ( (binary_expression "(*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0)" ( (binary_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0" (pointer_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP)" * (cast_expression "(int *)(&DAT_0008a8d7 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008a8d7 + unaff_EBP)" ( (binary_expression "&DAT_0008a8d7 + unaff_EBP" (pointer_expression "&DAT_0008a8d7" & identifier) + identifier) )))) != number_literal) )) && (parenthesized_expression "(puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)" ( (comma_expression "puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" * (cast_expression "(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" ( (binary_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4" (pointer_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP)" * (cast_expression "(int *)(&DAT_0008a8d7 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008a8d7 + unaff_EBP)" ( (binary_expression "&DAT_0008a8d7 + unaff_EBP" (pointer_expression "&DAT_0008a8d7" & identifier) + identifier) )))) + (binary_expression "(int)piVar20 * 4" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) , (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)" ( (comma_expression "pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0" (assignment_expression "pcVar6 = (code *)*puVar2" identifier = (cast_expression "(code *)*puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) , (binary_expression "pcVar6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }" { (expression_statement "local_bc = FUN_0004ce60 + unaff_EBP;" (assignment_expression "local_bc = FUN_0004ce60 + unaff_EBP" identifier = (binary_expression "FUN_0004ce60 + unaff_EBP" identifier + identifier)) ;) (expression_statement "local_ac = (code *)(unaff_EBP + 0x4b0b1);" (assignment_expression "local_ac = (code *)(unaff_EBP + 0x4b0b1)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4b0b1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b0b1)" ( (binary_expression "unaff_EBP + 0x4b0b1" identifier + number_literal) )))) ;) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4b727);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4b727)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4b727)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4b727)" ( (binary_expression "unaff_EBP + 0x4b727" identifier + number_literal) )))) ;) (do_statement "do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );" do (compound_statement "{\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        }" { (expression_statement "local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);" (assignment_expression "local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12)" identifier = (cast_expression "(code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + *(uint *)(pcVar6 + 4) * 0x12)" ( (binary_expression "puVar13 + *(uint *)(pcVar6 + 4) * 0x12" identifier + (binary_expression "*(uint *)(pcVar6 + 4) * 0x12" (pointer_expression "*(uint *)(pcVar6 + 4)" * (cast_expression "(uint *)(pcVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) * number_literal)) )))) ;) (if_statement "if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }" if (parenthesized_expression "((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0))" ( (binary_expression "(local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)" (parenthesized_expression "(local_c4 == (code *)0x0)" ( (binary_expression "local_c4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }" { (labeled_statement "LAB_0002c8dc:\n            local_b4 = pcVar6;" statement_identifier : (expression_statement "local_b4 = pcVar6;" (assignment_expression "local_b4 = pcVar6" identifier = identifier) ;)) (expression_statement "pcVar17 = (code *)dcgettext();" (assignment_expression "pcVar17 = (code *)dcgettext()" identifier = (cast_expression "(code *)dcgettext()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffff24" & identifier))) ;) (expression_statement "pcVar6 = local_b4;" (assignment_expression "pcVar6 = local_b4" identifier = identifier) ;) (expression_statement "puVar5 = auStack_cc;" (assignment_expression "puVar5 = auStack_cc" identifier = identifier) ;) }) (else_clause "else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }" else (compound_statement "{\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }" { (expression_statement "uVar15 = *(uint *)local_c4;" (assignment_expression "uVar15 = *(uint *)local_c4" identifier = (pointer_expression "*(uint *)local_c4" * (cast_expression "(uint *)local_c4" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);" (assignment_expression "pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15)" identifier = (cast_expression "(code *)(*(int *)(param_1 + 100) + uVar15)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 100) + uVar15)" ( (binary_expression "*(int *)(param_1 + 100) + uVar15" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "bVar25 = uVar15 < *(uint *)(param_1 + 0x68);" (assignment_expression "bVar25 = uVar15 < *(uint *)(param_1 + 0x68)" identifier = (binary_expression "uVar15 < *(uint *)(param_1 + 0x68)" identifier < (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) )))))) ;) (expression_statement "puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));" (assignment_expression "puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68))" identifier = (cast_expression "(undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 - *(uint *)(param_1 + 0x68))" ( (binary_expression "uVar15 - *(uint *)(param_1 + 0x68)" identifier - (pointer_expression "*(uint *)(param_1 + 0x68)" * (cast_expression "(uint *)(param_1 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) )))) ;) (if_statement "if (!bVar25) goto LAB_0002c8dc;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_0002c8dc;" goto statement_identifier ;)) }))) (expression_statement "bVar27 = puVar5 == (undefined1 *)0x0;" (assignment_expression "bVar27 = puVar5 == (undefined1 *)0x0" identifier = (binary_expression "puVar5 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar12 = 0x13;" (assignment_expression "iVar12 = 0x13" identifier = number_literal) ;) (expression_statement "pcVar11 = local_bc;" (assignment_expression "pcVar11 = local_bc" identifier = identifier) ;) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" do (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar25 = (byte)*pcVar17 < (byte)*pcVar11" identifier = (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar27 = *pcVar17 == *pcVar11;" (assignment_expression "bVar27 = *pcVar17 == *pcVar11" identifier = (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" * identifier) == (pointer_expression "*pcVar11" * identifier))) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar27)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;" if (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" ( (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" ( (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar27" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0002be90;" goto statement_identifier ;)) (expression_statement "pcVar6 = *(code **)pcVar6;" (assignment_expression "pcVar6 = *(code **)pcVar6" identifier = (pointer_expression "*(code **)pcVar6" * (cast_expression "(code **)pcVar6" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (pcVar6 == (code *)0x0) break;" if (parenthesized_expression "(pcVar6 == (code *)0x0)" ( (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (goto_statement "goto LAB_0002bc78;" goto statement_identifier ;) })) })) (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (labeled_statement "LAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }" statement_identifier : (if_statement "if (local_34 != (int *)0x0) {\n    free(local_34);\n  }" if (parenthesized_expression "(local_34 != (int *)0x0)" ( (binary_expression "local_34 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_34);\n  }" { (expression_statement "free(local_34);" (call_expression "free(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) }))) (if_statement "if (local_24 != (void *)0x0) {\n    free(local_24);\n  }" if (parenthesized_expression "(local_24 != (void *)0x0)" ( (binary_expression "local_24 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_24);\n  }" { (expression_statement "free(local_24);" (call_expression "free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) })) (return_statement "return local_70;" return identifier ;) (labeled_statement "LAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);" statement_identifier : (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0002be9a:\n  pcVar6 = local_c4;" statement_identifier : (expression_statement "pcVar6 = local_c4;" (assignment_expression "pcVar6 = local_c4" identifier = identifier) ;)) (if_statement "if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }" if (parenthesized_expression "(local_c0 == piVar8)" ( (binary_expression "local_c0 == piVar8" identifier == identifier) )) (compound_statement "{\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }" { (labeled_statement "LAB_0002bc78:\n    pcVar7 = (char *)dcgettext();" statement_identifier : (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (if_statement "if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }" if (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      printf((char *)(unaff_EBP + 0x67e12));\n    }" { (expression_statement "printf((char *)(unaff_EBP + 0x67e12));" (call_expression "printf((char *)(unaff_EBP + 0x67e12))" identifier (argument_list "((char *)(unaff_EBP + 0x67e12))" ( (cast_expression "(char *)(unaff_EBP + 0x67e12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x67e12)" ( (binary_expression "unaff_EBP + 0x67e12" identifier + number_literal) ))) ))) ;) }) (else_clause "else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }" else (compound_statement "{\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }" { (expression_statement "FUN_00022190();" (call_expression "FUN_00022190()" identifier (argument_list "()" ( ))) ;) (expression_statement "printf((char *)(unaff_EBP + 0x4ceb0));" (call_expression "printf((char *)(unaff_EBP + 0x4ceb0))" identifier (argument_list "((char *)(unaff_EBP + 0x4ceb0))" ( (cast_expression "(char *)(unaff_EBP + 0x4ceb0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ceb0)" ( (binary_expression "unaff_EBP + 0x4ceb0" identifier + number_literal) ))) ))) ;) }))) (goto_statement "goto joined_r0x0002c26e;" goto statement_identifier ;) })) (expression_statement "local_44 = *(code **)((int)local_c4 + 0x10);" (assignment_expression "local_44 = *(code **)((int)local_c4 + 0x10)" identifier = (pointer_expression "*(code **)((int)local_c4 + 0x10)" * (cast_expression "(code **)((int)local_c4 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_c4 + 0x10)" ( (binary_expression "(int)local_c4 + 0x10" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_40 = *(uint *)((int)local_c4 + 0x14);" (assignment_expression "local_40 = *(uint *)((int)local_c4 + 0x14)" identifier = (pointer_expression "*(uint *)((int)local_c4 + 0x14)" * (cast_expression "(uint *)((int)local_c4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x14)" ( (binary_expression "(int)local_c4 + 0x14" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));" (assignment_expression "local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" identifier = (cast_expression "(void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" identifier (argument_list "(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" ( number_literal , number_literal , (pointer_expression "*(uint *)((int)pcVar6 + 0x20)" * (cast_expression "(uint *)((int)pcVar6 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pcVar6 + 0x20)" ( (binary_expression "(int)pcVar6 + 0x20" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)pcVar6 + 0x24)" * (cast_expression "(uint *)((int)pcVar6 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pcVar6 + 0x24)" ( (binary_expression "(int)pcVar6 + 0x24" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (expression_statement "local_48 = (code *)0x0;" (assignment_expression "local_48 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }" if (parenthesized_expression "(local_4c != (void *)0x0)" ( (binary_expression "local_4c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }" { (expression_statement "local_48 = *(code **)((int)pcVar6 + 0x20);" (assignment_expression "local_48 = *(code **)((int)pcVar6 + 0x20)" identifier = (pointer_expression "*(code **)((int)pcVar6 + 0x20)" * (cast_expression "(code **)((int)pcVar6 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pcVar6 + 0x20)" ( (binary_expression "(int)pcVar6 + 0x20" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (if_statement "if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" ( (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" * (cast_expression "(int *)(param_1 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 100)" ( (binary_expression "param_1 + 100" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    printf((char *)(unaff_EBP + 0x67e12));\n  }" { (expression_statement "printf((char *)(unaff_EBP + 0x67e12));" (call_expression "printf((char *)(unaff_EBP + 0x67e12))" identifier (argument_list "((char *)(unaff_EBP + 0x67e12))" ( (cast_expression "(char *)(unaff_EBP + 0x67e12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x67e12)" ( (binary_expression "unaff_EBP + 0x67e12" identifier + number_literal) ))) ))) ;) }) (else_clause "else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }" else (compound_statement "{\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }" { (expression_statement "FUN_00022190();" (call_expression "FUN_00022190()" identifier (argument_list "()" ( ))) ;) (expression_statement "printf((char *)(unaff_EBP + 0x4ceb0));" (call_expression "printf((char *)(unaff_EBP + 0x4ceb0))" identifier (argument_list "((char *)(unaff_EBP + 0x4ceb0))" ( (cast_expression "(char *)(unaff_EBP + 0x4ceb0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ceb0)" ( (binary_expression "unaff_EBP + 0x4ceb0" identifier + number_literal) ))) ))) ;) }))) (expression_statement "local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);" (assignment_expression "local_c0 = (int *)(&DAT_0008e36b + unaff_EBP)" identifier = (cast_expression "(int *)(&DAT_0008e36b + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008e36b + unaff_EBP)" ( (binary_expression "&DAT_0008e36b + unaff_EBP" (pointer_expression "&DAT_0008e36b" & identifier) + identifier) )))) ;) (expression_statement "FUN_0006b5b0();" (call_expression "FUN_0006b5b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }" { (expression_statement "local_b0 = local_a4[9];" (assignment_expression "local_b0 = local_a4[9]" identifier = (subscript_expression "local_a4[9]" identifier [ number_literal ])) ;) (expression_statement "local_b4 = (code *)local_a4[8];" (assignment_expression "local_b4 = (code *)local_a4[8]" identifier = (cast_expression "(code *)local_a4[8]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_a4[8]" identifier [ number_literal ]))) ;) (expression_statement "uVar15 = local_3c;" (assignment_expression "uVar15 = local_3c" identifier = identifier) ;) (expression_statement "uVar18 = local_38;" (assignment_expression "uVar18 = local_38" identifier = identifier) ;) (labeled_statement "LAB_0002c050:\n    local_38 = uVar18;" statement_identifier : (expression_statement "local_38 = uVar18;" (assignment_expression "local_38 = uVar18" identifier = identifier) ;)) (expression_statement "local_3c = uVar15;" (assignment_expression "local_3c = uVar15" identifier = identifier) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar6 = local_b4;" (assignment_expression "pcVar6 = local_b4" identifier = identifier) ;) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_84 = local_b4;" (assignment_expression "local_84 = local_b4" identifier = identifier) ;) (expression_statement "local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);" (assignment_expression "local_bc = (code *)FUN_0001bf90(1,0,local_b4,0)" identifier = (cast_expression "(code *)FUN_0001bf90(1,0,local_b4,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001bf90(1,0,local_b4,0)" identifier (argument_list "(1,0,local_b4,0)" ( number_literal , number_literal , identifier , number_literal ))))) ;) (expression_statement "piVar8 = local_c0;" (assignment_expression "piVar8 = local_c0" identifier = identifier) ;) (if_statement "if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }" if (parenthesized_expression "(local_bc != (code *)0x0)" ( (binary_expression "local_bc != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }" { (expression_statement "local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);" (assignment_expression "local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3)" identifier = (binary_expression "(uint)pcVar6 / (uint)(*local_c0 * 3)" (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier) / (call_expression "(uint)(*local_c0 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*local_c0 * 3)" ( (binary_expression "*local_c0 * 3" (pointer_expression "*local_c0" * identifier) * number_literal) ))))) ;) (expression_statement "local_b4 = pcVar6;" (assignment_expression "local_b4 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar6 = (code *)FUN_0005db00();" (assignment_expression "pcVar6 = (code *)FUN_0005db00()" identifier = (cast_expression "(code *)FUN_0005db00()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005db00()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_ac = (code *)(&UNK_0008e39b + unaff_EBP);" (assignment_expression "local_ac = (code *)(&UNK_0008e39b + unaff_EBP)" identifier = (cast_expression "(code *)(&UNK_0008e39b + unaff_EBP)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_0008e39b + unaff_EBP)" ( (binary_expression "&UNK_0008e39b + unaff_EBP" (pointer_expression "&UNK_0008e39b" & identifier) + identifier) )))) ;) (expression_statement "local_c4 = local_bc;" (assignment_expression "local_c4 = local_bc" identifier = identifier) ;) (expression_statement "local_54 = pcVar6;" (assignment_expression "local_54 = pcVar6" identifier = identifier) ;) (if_statement "if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }" if (parenthesized_expression "(!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc))" ( (unary_expression "!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)" ! (call_expression "CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)" identifier (argument_list "((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)" ( (call_expression "(uint)(local_b4 + *piVar8 * -3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b4 + *piVar8 * -3)" ( (binary_expression "local_b4 + *piVar8 * -3" identifier + (binary_expression "*piVar8 * -3" (pointer_expression "*piVar8" * identifier) * number_literal)) ))) , (cast_expression "(uint)local_bc" ( (type_descriptor "uint" type_identifier) ) identifier) )))) )) (compound_statement "{\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }" { (do_statement "do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));" do (compound_statement "{\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        }" { (expression_statement "pcVar11 = local_ac;" (assignment_expression "pcVar11 = local_ac" identifier = identifier) ;) (expression_statement "pcVar17 = local_c4;" (assignment_expression "pcVar17 = local_c4" identifier = identifier) ;) (expression_statement "*(undefined2 *)pcVar6 = 0;" (assignment_expression "*(undefined2 *)pcVar6 = 0" (pointer_expression "*(undefined2 *)pcVar6" * (cast_expression "(undefined2 *)pcVar6" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined2 *)(pcVar6 + 0xc) = 0;" (assignment_expression "*(undefined2 *)(pcVar6 + 0xc) = 0" (pointer_expression "*(undefined2 *)(pcVar6 + 0xc)" * (cast_expression "(undefined2 *)(pcVar6 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0xc)" ( (binary_expression "pcVar6 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(pcVar6 + 0x18) = 0;" (assignment_expression "*(undefined2 *)(pcVar6 + 0x18) = 0" (pointer_expression "*(undefined2 *)(pcVar6 + 0x18)" * (cast_expression "(undefined2 *)(pcVar6 + 0x18)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x18)" ( (binary_expression "pcVar6 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar29 = (**(code **)local_ac)();" (assignment_expression "uVar29 = (**(code **)local_ac)()" identifier = (call_expression "(**(code **)local_ac)()" (parenthesized_expression "(**(code **)local_ac)" ( (pointer_expression "**(code **)local_ac" * (pointer_expression "*(code **)local_ac" * (cast_expression "(code **)local_ac" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pcVar6 + 4) = uVar29;" (assignment_expression "*(undefined8 *)(pcVar6 + 4) = uVar29" (pointer_expression "*(undefined8 *)(pcVar6 + 4)" * (cast_expression "(undefined8 *)(pcVar6 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar12 = *local_c0;" (assignment_expression "iVar12 = *local_c0" identifier = (pointer_expression "*local_c0" * identifier)) ;) (expression_statement "uVar29 = (**(code **)pcVar11)();" (assignment_expression "uVar29 = (**(code **)pcVar11)()" identifier = (call_expression "(**(code **)pcVar11)()" (parenthesized_expression "(**(code **)pcVar11)" ( (pointer_expression "**(code **)pcVar11" * (pointer_expression "*(code **)pcVar11" * (cast_expression "(code **)pcVar11" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined8 *)(pcVar6 + 0x10) = uVar29;" (assignment_expression "*(undefined8 *)(pcVar6 + 0x10) = uVar29" (pointer_expression "*(undefined8 *)(pcVar6 + 0x10)" * (cast_expression "(undefined8 *)(pcVar6 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x10)" ( (binary_expression "pcVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar22 = *local_c0;" (assignment_expression "iVar22 = *local_c0" identifier = (pointer_expression "*local_c0" * identifier)) ;) (expression_statement "lVar30 = (**(code **)pcVar11)();" (assignment_expression "lVar30 = (**(code **)pcVar11)()" identifier = (call_expression "(**(code **)pcVar11)()" (parenthesized_expression "(**(code **)pcVar11)" ( (pointer_expression "**(code **)pcVar11" * (pointer_expression "*(code **)pcVar11" * (cast_expression "(code **)pcVar11" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = *local_c0;" (assignment_expression "iVar4 = *local_c0" identifier = (pointer_expression "*local_c0" * identifier)) ;) (expression_statement "local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;" (assignment_expression "local_c4 = pcVar17 + iVar4 + iVar22 + iVar12" identifier = (binary_expression "pcVar17 + iVar4 + iVar22 + iVar12" (binary_expression "pcVar17 + iVar4 + iVar22" (binary_expression "pcVar17 + iVar4" identifier + identifier) + identifier) + identifier)) ;) (expression_statement "pcVar17 = pcVar6 + 4;" (assignment_expression "pcVar17 = pcVar6 + 4" identifier = (binary_expression "pcVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar15 = *(uint *)pcVar17;" (assignment_expression "uVar15 = *(uint *)pcVar17" identifier = (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;" (assignment_expression "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier)) ;) (expression_statement "*(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);" (assignment_expression "*(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c)" (pointer_expression "*(uint *)(pcVar6 + 8)" * (cast_expression "(uint *)(pcVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = (binary_expression "*(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c)" (binary_expression "*(uint *)(pcVar6 + 8) + local_38" (pointer_expression "*(uint *)(pcVar6 + 8)" * (cast_expression "(uint *)(pcVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) + identifier) + (cast_expression "(uint)CARRY4(uVar15,local_3c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,local_3c)" identifier (argument_list "(uVar15,local_3c)" ( identifier , identifier )))))) ;) (expression_statement "pcVar17 = pcVar6 + 0x10;" (assignment_expression "pcVar17 = pcVar6 + 0x10" identifier = (binary_expression "pcVar6 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar15 = *(uint *)pcVar17;" (assignment_expression "uVar15 = *(uint *)pcVar17" identifier = (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;" (assignment_expression "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" * (cast_expression "(uint *)pcVar17" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) + identifier)) ;) (expression_statement "*(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);" (assignment_expression "*(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c)" (pointer_expression "*(uint *)(pcVar6 + 0x14)" * (cast_expression "(uint *)(pcVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x14)" ( (binary_expression "pcVar6 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c)" (binary_expression "*(uint *)(pcVar6 + 0x14) + local_38" (pointer_expression "*(uint *)(pcVar6 + 0x14)" * (cast_expression "(uint *)(pcVar6 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x14)" ( (binary_expression "pcVar6 + 0x14" identifier + number_literal) )))) + identifier) + (cast_expression "(uint)CARRY4(uVar15,local_3c)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,local_3c)" identifier (argument_list "(uVar15,local_3c)" ( identifier , identifier )))))) ;) (expression_statement "pcVar17 = pcVar6 + 0x1c;" (assignment_expression "pcVar17 = pcVar6 + 0x1c" identifier = (binary_expression "pcVar6 + 0x1c" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar6 + 0x24;" (assignment_expression "pcVar6 = pcVar6 + 0x24" identifier = (binary_expression "pcVar6 + 0x24" identifier + number_literal)) ;) (expression_statement "*(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);" (assignment_expression "*(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c)" (pointer_expression "*(longlong *)pcVar17" * (cast_expression "(longlong *)pcVar17" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "lVar30 + CONCAT44(local_38,local_3c)" identifier + (call_expression "CONCAT44(local_38,local_3c)" identifier (argument_list "(local_38,local_3c)" ( identifier , identifier ))))) ;) }) while (parenthesized_expression "(local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3))" ( (binary_expression "local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3)" identifier <= (binary_expression "local_bc + (int)(local_b4 + iVar4 * -3)" identifier + (cast_expression "(int)(local_b4 + iVar4 * -3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_b4 + iVar4 * -3)" ( (binary_expression "local_b4 + iVar4 * -3" identifier + (binary_expression "iVar4 * -3" identifier * number_literal)) ))))) )) ;) })) (expression_statement "free(local_bc);" (call_expression "free(local_bc)" identifier (argument_list "(local_bc)" ( identifier ))) ;) (expression_statement "local_8c = (code *)(unaff_EBP + 0x4cedf);" (assignment_expression "local_8c = (code *)(unaff_EBP + 0x4cedf)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4cedf)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cedf)" ( (binary_expression "unaff_EBP + 0x4cedf" identifier + number_literal) )))) ;) (expression_statement "puVar14 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = (code *)puVar14;" (assignment_expression "local_c4 = (code *)puVar14" identifier = (cast_expression "(code *)puVar14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }" if (parenthesized_expression "(puVar14 < puVar14 + uVar15 * 0x12)" ( (binary_expression "puVar14 < puVar14 + uVar15 * 0x12" identifier < (binary_expression "puVar14 + uVar15 * 0x12" identifier + (binary_expression "uVar15 * 0x12" identifier * number_literal))) )) (compound_statement "{\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }" { (do_statement "do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);" do (compound_statement "{\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        }" { (if_statement "if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }" if (parenthesized_expression "(((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12))" ( (binary_expression "((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)" (parenthesized_expression "((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15))" ( (binary_expression "(*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)" (parenthesized_expression "(*(uint *)((int)local_c4 + 4) == 4)" ( (binary_expression "*(uint *)((int)local_c4 + 4) == 4" (pointer_expression "*(uint *)((int)local_c4 + 4)" * (cast_expression "(uint *)((int)local_c4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 4)" ( (binary_expression "(int)local_c4 + 4" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(uint *)((int)local_c4 + 0x2c) < uVar15)" ( (binary_expression "*(uint *)((int)local_c4 + 0x2c) < uVar15" (pointer_expression "*(uint *)((int)local_c4 + 0x2c)" * (cast_expression "(uint *)((int)local_c4 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x2c)" ( (binary_expression "(int)local_c4 + 0x2c" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < identifier) ))) )) && (parenthesized_expression "(local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)" ( (binary_expression "local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12" identifier == (binary_expression "puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12" identifier + (binary_expression "*(uint *)((int)local_c4 + 0x2c) * 0x12" (pointer_expression "*(uint *)((int)local_c4 + 0x2c)" * (cast_expression "(uint *)((int)local_c4 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x2c)" ( (binary_expression "(int)local_c4 + 0x2c" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) * number_literal))) ))) )) (compound_statement "{\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }" { (expression_statement "iVar12 = FUN_0001e360();" (assignment_expression "iVar12 = FUN_0001e360()" identifier = (call_expression "FUN_0001e360()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }" { (expression_statement "free(local_54);" (call_expression "free(local_54)" identifier (argument_list "(local_54)" ( identifier ))) ;) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0002c236;" goto statement_identifier ;) })) (expression_statement "local_a0 = local_60;" (assignment_expression "local_a0 = local_60" identifier = identifier) ;) (expression_statement "local_b4 = local_5c;" (assignment_expression "local_b4 = local_5c" identifier = identifier) ;) (expression_statement "local_bc = local_5c;" (assignment_expression "local_bc = local_5c" identifier = identifier) ;) (if_statement "if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }" if (parenthesized_expression "(local_5c < local_5c + (int)local_60 * 0x18)" ( (binary_expression "local_5c < local_5c + (int)local_60 * 0x18" identifier < (binary_expression "local_5c + (int)local_60 * 0x18" identifier + (binary_expression "(int)local_60 * 0x18" (cast_expression "(int)local_60" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) (compound_statement "{\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }" { (expression_statement "local_88 = (char **)(param_1 + 0x42);" (assignment_expression "local_88 = (char **)(param_1 + 0x42)" identifier = (cast_expression "(char **)(param_1 + 0x42)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x42)" ( (binary_expression "param_1 + 0x42" identifier + number_literal) )))) ;) (expression_statement "local_7c = (code **)(unaff_EBP + 0x5787f);" (assignment_expression "local_7c = (code **)(unaff_EBP + 0x5787f)" identifier = (cast_expression "(code **)(unaff_EBP + 0x5787f)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x5787f)" ( (binary_expression "unaff_EBP + 0x5787f" identifier + number_literal) )))) ;) (do_statement "do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);" do (compound_statement "{\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              }" { (expression_statement "piVar8 = local_34;" (assignment_expression "piVar8 = local_34" identifier = identifier) ;) (expression_statement "uVar15 = *(uint *)(local_bc + 0xc);" (assignment_expression "uVar15 = *(uint *)(local_bc + 0xc)" identifier = (pointer_expression "*(uint *)(local_bc + 0xc)" * (cast_expression "(uint *)(local_bc + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0xc)" ( (binary_expression "local_bc + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(uint *)(local_bc + 8);" (assignment_expression "uVar18 = *(uint *)(local_bc + 8)" identifier = (pointer_expression "*(uint *)(local_bc + 8)" * (cast_expression "(uint *)(local_bc + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 8)" ( (binary_expression "local_bc + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }" if (parenthesized_expression "(*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0)" ( (binary_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0" (pointer_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP)" * (cast_expression "(int *)(&DAT_0008a8e7 + unaff_EBP)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0008a8e7 + unaff_EBP)" ( (binary_expression "&DAT_0008a8e7 + unaff_EBP" (pointer_expression "&DAT_0008a8e7" & identifier) + identifier) )))) == number_literal) )) (compound_statement "{\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }" { (expression_statement "local_9c = (void *)FUN_00021e40();" (assignment_expression "local_9c = (void *)FUN_00021e40()" identifier = (cast_expression "(void *)FUN_00021e40()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00021e40()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pcVar6 = (code *)FUN_00015c60();" (assignment_expression "pcVar6 = (code *)FUN_00015c60()" identifier = (cast_expression "(code *)FUN_00015c60()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00015c60()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_ac = (code *)(piVar8 + uVar15 * 7);" (assignment_expression "local_ac = (code *)(piVar8 + uVar15 * 7)" identifier = (cast_expression "(code *)(piVar8 + uVar15 * 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + uVar15 * 7)" ( (binary_expression "piVar8 + uVar15 * 7" identifier + (binary_expression "uVar15 * 7" identifier * number_literal)) )))) ;) (expression_statement "bVar25 = pcVar6 == (code *)0x0;" (assignment_expression "bVar25 = pcVar6 == (code *)0x0" identifier = (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar25) goto LAB_0002c3b9;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_0002c3b9;" goto statement_identifier ;)) (labeled_statement "LAB_0002c4e0:\n                  dcgettext();" statement_identifier : (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_0002c4fb:\n                  warn();" statement_identifier : (expression_statement "warn();" (call_expression "warn()" identifier (argument_list "()" ( ))) ;)) (expression_statement "local_b4 = local_5c;" (assignment_expression "local_b4 = local_5c" identifier = identifier) ;) (expression_statement "local_a0 = local_60;" (assignment_expression "local_a0 = local_60" identifier = identifier) ;) }) (else_clause "else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }" else (compound_statement "{\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }" { (expression_statement "local_9c = (void *)(uVar18 & 0xff);" (assignment_expression "local_9c = (void *)(uVar18 & 0xff)" identifier = (cast_expression "(void *)(uVar18 & 0xff)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar18 & 0xff)" ( (binary_expression "uVar18 & 0xff" identifier & number_literal) )))) ;) (expression_statement "pcVar6 = (code *)FUN_00015c60();" (assignment_expression "pcVar6 = (code *)FUN_00015c60()" identifier = (cast_expression "(code *)FUN_00015c60()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00015c60()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);" (assignment_expression "local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7)" identifier = (cast_expression "(code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7)" ( (binary_expression "piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7" identifier + (binary_expression "(uVar18 >> 8 | uVar15 << 0x18) * 7" (parenthesized_expression "(uVar18 >> 8 | uVar15 << 0x18)" ( (binary_expression "uVar18 >> 8 | uVar15 << 0x18" (binary_expression "uVar18 >> 8" identifier >> number_literal) | (binary_expression "uVar15 << 0x18" identifier << number_literal)) )) * number_literal)) )))) ;) (expression_statement "bVar25 = pcVar6 == (code *)0x0;" (assignment_expression "bVar25 = pcVar6 == (code *)0x0" identifier = (binary_expression "pcVar6 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar25) goto LAB_0002c4e0;" if (parenthesized_expression "(bVar25)" ( identifier )) (goto_statement "goto LAB_0002c4e0;" goto statement_identifier ;)) (labeled_statement "LAB_0002c3b9:\n                  bVar27 = false;" statement_identifier : (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;)) (expression_statement "iVar12 = 0xd;" (assignment_expression "iVar12 = 0xd" identifier = number_literal) ;) (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar11 = local_8c;" (assignment_expression "pcVar11 = local_8c" identifier = identifier) ;) (do_statement "do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);" do (compound_statement "{\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar27 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar27 = (byte)*pcVar17 < (byte)*pcVar11" identifier = (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" ( identifier )) * identifier) < (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier))) ;) (expression_statement "bVar25 = *pcVar17 == *pcVar11;" (assignment_expression "bVar25 = *pcVar17 == *pcVar11" identifier = (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" * identifier) == (pointer_expression "*pcVar11" * identifier))) ;) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" identifier = (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" identifier + (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" if (parenthesized_expression "((!bVar27 && !bVar25) != bVar27)" ( (binary_expression "(!bVar27 && !bVar25) != bVar27" (parenthesized_expression "(!bVar27 && !bVar25)" ( (binary_expression "!bVar27 && !bVar25" (unary_expression "!bVar27" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) (compound_statement "{\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" { (expression_statement "local_b4 = pcVar6;" (assignment_expression "local_b4 = pcVar6" identifier = identifier) ;) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002c4fb;" goto statement_identifier ;) })) (expression_statement "local_9c = *(void **)local_bc;" (assignment_expression "local_9c = *(void **)local_bc" identifier = (pointer_expression "*(void **)local_bc" * (cast_expression "(void **)local_bc" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_98 = *(uint *)(local_bc + 4);" (assignment_expression "local_98 = *(uint *)(local_bc + 4)" identifier = (pointer_expression "*(uint *)(local_bc + 4)" * (cast_expression "(uint *)(local_bc + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 4)" ( (binary_expression "local_bc + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = FUN_0006b5b0();" (assignment_expression "uVar15 = FUN_0006b5b0()" identifier = (call_expression "FUN_0006b5b0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" if (parenthesized_expression "(local_50 <= uVar15)" ( (binary_expression "local_50 <= uVar15" identifier <= identifier) )) (compound_statement "{\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" { (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002c4fb;" goto statement_identifier ;) })) (expression_statement "FUN_0006b5b0();" (call_expression "FUN_0006b5b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar30 = FUN_0006b6c0();" (assignment_expression "lVar30 = FUN_0006b6c0()" identifier = (call_expression "FUN_0006b6c0()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar6 = local_54 + uVar15 * 0x24;" (assignment_expression "pcVar6 = local_54 + uVar15 * 0x24" identifier = (binary_expression "local_54 + uVar15 * 0x24" identifier + (binary_expression "uVar15 * 0x24" identifier * number_literal))) ;) (expression_statement "pcVar17 = *(code **)(local_ac + 0x18);" (assignment_expression "pcVar17 = *(code **)(local_ac + 0x18)" identifier = (pointer_expression "*(code **)(local_ac + 0x18)" * (cast_expression "(code **)(local_ac + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_ac + 0x18)" ( (binary_expression "local_ac + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;" (assignment_expression "iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac" identifier = (binary_expression "*(uint *)(local_bc + 0x10) + *(uint *)local_ac" (pointer_expression "*(uint *)(local_bc + 0x10)" * (cast_expression "(uint *)(local_bc + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x10)" ( (binary_expression "local_bc + 0x10" identifier + number_literal) )))) + (pointer_expression "*(uint *)local_ac" * (cast_expression "(uint *)local_ac" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);" (assignment_expression "iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" identifier = (binary_expression "*(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" (binary_expression "*(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4)" (pointer_expression "*(uint *)(local_bc + 0x14)" * (cast_expression "(uint *)(local_bc + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x14)" ( (binary_expression "local_bc + 0x14" identifier + number_literal) )))) + (pointer_expression "*(uint *)(local_ac + 4)" * (cast_expression "(uint *)(local_ac + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ac + 4)" ( (binary_expression "local_ac + 4" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" identifier (argument_list "(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" ( (pointer_expression "*(uint *)(local_bc + 0x10)" * (cast_expression "(uint *)(local_bc + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_bc + 0x10)" ( (binary_expression "local_bc + 0x10" identifier + number_literal) )))) , (pointer_expression "*(uint *)local_ac" * (cast_expression "(uint *)local_ac" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))))) ;) (expression_statement "local_ac._0_2_ = SUB42(pcVar17,0);" (assignment_expression "local_ac._0_2_ = SUB42(pcVar17,0)" (field_expression "local_ac._0_2_" identifier . field_identifier) = (call_expression "SUB42(pcVar17,0)" identifier (argument_list "(pcVar17,0)" ( identifier , number_literal )))) ;) (expression_statement "local_ac = pcVar17;" (assignment_expression "local_ac = pcVar17" identifier = identifier) ;) (if_statement "if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" if (parenthesized_expression "(lVar30 == 1)" ( (binary_expression "lVar30 == 1" identifier == number_literal) )) (compound_statement "{\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }" { (expression_statement "*(int *)(pcVar6 + 0x10) = iVar12;" (assignment_expression "*(int *)(pcVar6 + 0x10) = iVar12" (pointer_expression "*(int *)(pcVar6 + 0x10)" * (cast_expression "(int *)(pcVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x10)" ( (binary_expression "pcVar6 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pcVar6 + 0x14) = iVar22;" (assignment_expression "*(int *)(pcVar6 + 0x14) = iVar22" (pointer_expression "*(int *)(pcVar6 + 0x14)" * (cast_expression "(int *)(pcVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x14)" ( (binary_expression "pcVar6 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;" (assignment_expression "*(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_" (pointer_expression "*(undefined2 *)(pcVar6 + 0xc)" * (cast_expression "(undefined2 *)(pcVar6 + 0xc)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0xc)" ( (binary_expression "pcVar6 + 0xc" identifier + number_literal) )))) = (field_expression "local_ac._0_2_" identifier . field_identifier)) ;) }) (else_clause "else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" else (if_statement "if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" if (parenthesized_expression "(lVar30 == 2)" ( (binary_expression "lVar30 == 2" identifier == number_literal) )) (compound_statement "{\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }" { (expression_statement "*(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;" (assignment_expression "*(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_" (pointer_expression "*(undefined2 *)(pcVar6 + 0x18)" * (cast_expression "(undefined2 *)(pcVar6 + 0x18)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x18)" ( (binary_expression "pcVar6 + 0x18" identifier + number_literal) )))) = (field_expression "local_ac._0_2_" identifier . field_identifier)) ;) (expression_statement "*(int *)(pcVar6 + 0x1c) = iVar12;" (assignment_expression "*(int *)(pcVar6 + 0x1c) = iVar12" (pointer_expression "*(int *)(pcVar6 + 0x1c)" * (cast_expression "(int *)(pcVar6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x1c)" ( (binary_expression "pcVar6 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pcVar6 + 0x20) = iVar22;" (assignment_expression "*(int *)(pcVar6 + 0x20) = iVar22" (pointer_expression "*(int *)(pcVar6 + 0x20)" * (cast_expression "(int *)(pcVar6 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x20)" ( (binary_expression "pcVar6 + 0x20" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" else (compound_statement "{\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" { (expression_statement "*(undefined2 *)pcVar6 = local_ac._0_2_;" (assignment_expression "*(undefined2 *)pcVar6 = local_ac._0_2_" (pointer_expression "*(undefined2 *)pcVar6" * (cast_expression "(undefined2 *)pcVar6" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "local_ac._0_2_" identifier . field_identifier)) ;) (expression_statement "*(int *)(pcVar6 + 4) = iVar12;" (assignment_expression "*(int *)(pcVar6 + 4) = iVar12" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(pcVar6 + 8) = iVar22;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar22" (pointer_expression "*(int *)(pcVar6 + 8)" * (cast_expression "(int *)(pcVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 8)" ( (binary_expression "pcVar6 + 8" identifier + number_literal) )))) = identifier) ;) }))))) }))) (expression_statement "local_bc = local_bc + 0x18;" (assignment_expression "local_bc = local_bc + 0x18" identifier = (binary_expression "local_bc + 0x18" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_bc < local_b4 + (int)local_a0 * 0x18)" ( (binary_expression "local_bc < local_b4 + (int)local_a0 * 0x18" identifier < (binary_expression "local_b4 + (int)local_a0 * 0x18" identifier + (binary_expression "(int)local_a0 * 0x18" (cast_expression "(int)local_a0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) )) ;) })) (expression_statement "free(local_b4);" (call_expression "free(local_b4)" identifier (argument_list "(local_b4)" ( identifier ))) ;) (expression_statement "puVar14 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x5c)" identifier = (pointer_expression "*(uint **)(param_1 + 0x5c)" * (cast_expression "(uint **)(param_1 + 0x5c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) })) (expression_statement "local_c4 = (code *)((int)local_c4 + 0x48);" (assignment_expression "local_c4 = (code *)((int)local_c4 + 0x48)" identifier = (cast_expression "(code *)((int)local_c4 + 0x48)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_c4 + 0x48)" ( (binary_expression "(int)local_c4 + 0x48" (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(local_c4 < puVar14 + uVar15 * 0x12)" ( (binary_expression "local_c4 < puVar14 + uVar15 * 0x12" identifier < (binary_expression "puVar14 + uVar15 * 0x12" identifier + (binary_expression "uVar15 * 0x12" identifier * number_literal))) )) ;) })) (if_statement "if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }" if (parenthesized_expression "(local_50 != 0)" ( (binary_expression "local_50 != 0" identifier != number_literal) )) (compound_statement "{\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }" { (expression_statement "local_2c = (void *)FUN_0006b190();" (assignment_expression "local_2c = (void *)FUN_0006b190()" identifier = (cast_expression "(void *)FUN_0006b190()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0006b190()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" identifier = identifier) ;) (if_statement "if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }" if (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) )) (compound_statement "{\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }" { (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "piVar8 = local_34;" (assignment_expression "piVar8 = local_34" identifier = identifier) ;) (do_statement "do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);" do (compound_statement "{\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          }" { (if_statement "if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }" if (parenthesized_expression "((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2))" ( (binary_expression "(*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)" (parenthesized_expression "(*piVar8 != 0 || piVar8[1] != 0)" ( (binary_expression "*piVar8 != 0 || piVar8[1] != 0" (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" * identifier) != number_literal) || (binary_expression "piVar8[1] != 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) != number_literal)) )) && (parenthesized_expression "((*(byte *)(piVar8 + 5) & 0xf) == 2)" ( (binary_expression "(*(byte *)(piVar8 + 5) & 0xf) == 2" (parenthesized_expression "(*(byte *)(piVar8 + 5) & 0xf)" ( (binary_expression "*(byte *)(piVar8 + 5) & 0xf" (pointer_expression "*(byte *)(piVar8 + 5)" * (cast_expression "(byte *)(piVar8 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 5)" ( (binary_expression "piVar8 + 5" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }" { (expression_statement "iVar12 = local_28 * 0x1c;" (assignment_expression "iVar12 = local_28 * 0x1c" identifier = (binary_expression "local_28 * 0x1c" identifier * number_literal)) ;) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" identifier = (binary_expression "local_28 + 1" identifier + number_literal)) ;) (expression_statement "piVar20 = (int *)(iVar12 + (int)local_2c);" (assignment_expression "piVar20 = (int *)(iVar12 + (int)local_2c)" identifier = (cast_expression "(int *)(iVar12 + (int)local_2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + (int)local_2c)" ( (binary_expression "iVar12 + (int)local_2c" identifier + (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*piVar20 = *piVar8;" (assignment_expression "*piVar20 = *piVar8" (pointer_expression "*piVar20" * identifier) = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar20[1] = piVar8[1];" (assignment_expression "piVar20[1] = piVar8[1]" (subscript_expression "piVar20[1]" identifier [ number_literal ]) = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (expression_statement "piVar20[2] = piVar8[2];" (assignment_expression "piVar20[2] = piVar8[2]" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = (subscript_expression "piVar8[2]" identifier [ number_literal ])) ;) (expression_statement "piVar20[3] = piVar8[3];" (assignment_expression "piVar20[3] = piVar8[3]" (subscript_expression "piVar20[3]" identifier [ number_literal ]) = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (expression_statement "piVar20[4] = piVar8[4];" (assignment_expression "piVar20[4] = piVar8[4]" (subscript_expression "piVar20[4]" identifier [ number_literal ]) = (subscript_expression "piVar8[4]" identifier [ number_literal ])) ;) (expression_statement "piVar20[5] = piVar8[5];" (assignment_expression "piVar20[5] = piVar8[5]" (subscript_expression "piVar20[5]" identifier [ number_literal ]) = (subscript_expression "piVar8[5]" identifier [ number_literal ])) ;) (expression_statement "piVar20[6] = piVar8[6];" (assignment_expression "piVar20[6] = piVar8[6]" (subscript_expression "piVar20[6]" identifier [ number_literal ]) = (subscript_expression "piVar8[6]" identifier [ number_literal ])) ;) })) (expression_statement "piVar8 = piVar8 + 7;" (assignment_expression "piVar8 = piVar8 + 7" identifier = (binary_expression "piVar8 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_34 + local_30 * 7 != piVar8)" ( (binary_expression "local_34 + local_30 * 7 != piVar8" (binary_expression "local_34 + local_30 * 7" identifier + (binary_expression "local_30 * 7" identifier * number_literal)) != identifier) )) ;) })) (expression_statement "qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));" (call_expression "qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d))" identifier (argument_list "(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d))" ( identifier , identifier , number_literal , (call_expression "(__compar_fn_t)(unaff_EBP + -0xfc3d)" (parenthesized_expression "(__compar_fn_t)" ( identifier )) (argument_list "(unaff_EBP + -0xfc3d)" ( (binary_expression "unaff_EBP + -0xfc3d" identifier + number_literal) ))) ))) ;) (if_statement "if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }" if (parenthesized_expression "(local_54 < local_54 + local_50 * 0x24)" ( (binary_expression "local_54 < local_54 + local_50 * 0x24" identifier < (binary_expression "local_54 + local_50 * 0x24" identifier + (binary_expression "local_50 * 0x24" identifier * number_literal))) )) (compound_statement "{\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }" { (expression_statement "local_88 = &local_60;" (assignment_expression "local_88 = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;) (expression_statement "local_7c = &local_5c;" (assignment_expression "local_7c = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);" (assignment_expression "local_c4 = *(code **)(&DAT_0008859b + unaff_EBP)" identifier = (pointer_expression "*(code **)(&DAT_0008859b + unaff_EBP)" * (cast_expression "(code **)(&DAT_0008859b + unaff_EBP)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_0008859b + unaff_EBP)" ( (binary_expression "&DAT_0008859b + unaff_EBP" (pointer_expression "&DAT_0008859b" & identifier) + identifier) ))))) ;) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4ceed);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4ceed)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4ceed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ceed)" ( (binary_expression "unaff_EBP + 0x4ceed" identifier + number_literal) )))) ;) (expression_statement "local_9c = (void *)(unaff_EBP + 0x4cef5);" (assignment_expression "local_9c = (void *)(unaff_EBP + 0x4cef5)" identifier = (cast_expression "(void *)(unaff_EBP + 0x4cef5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cef5)" ( (binary_expression "unaff_EBP + 0x4cef5" identifier + number_literal) )))) ;) (expression_statement "local_8c = (code *)(unaff_EBP + 0x4cefa);" (assignment_expression "local_8c = (code *)(unaff_EBP + 0x4cefa)" identifier = (cast_expression "(code *)(unaff_EBP + 0x4cefa)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cefa)" ( (binary_expression "unaff_EBP + 0x4cefa" identifier + number_literal) )))) ;) (expression_statement "local_74 = (char *)(unaff_EBP + 0x4cef0);" (assignment_expression "local_74 = (char *)(unaff_EBP + 0x4cef0)" identifier = (cast_expression "(char *)(unaff_EBP + 0x4cef0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4cef0)" ( (binary_expression "unaff_EBP + 0x4cef0" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = local_54;" (assignment_expression "pcVar6 = local_54" identifier = identifier) ;) (do_statement "do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);" do (compound_statement "{\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          }" { (expression_statement "FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));" (call_expression "FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4))" identifier (argument_list "(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4))" ( identifier , identifier , (pointer_expression "*(undefined2 *)pcVar6" * (cast_expression "(undefined2 *)pcVar6" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "*(uint *)(pcVar6 + 4)" * (cast_expression "(uint *)(pcVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar17 = local_c4;" (assignment_expression "pcVar17 = local_c4" identifier = identifier) ;) (expression_statement "fwrite(local_a0,1,2,*(FILE **)local_c4);" (call_expression "fwrite(local_a0,1,2,*(FILE **)local_c4)" identifier (argument_list "(local_a0,1,2,*(FILE **)local_c4)" ( identifier , number_literal , number_literal , (pointer_expression "*(FILE **)local_c4" * (cast_expression "(FILE **)local_c4" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (if_statement "if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }" if (parenthesized_expression "((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0))" ( (binary_expression "(local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)" (parenthesized_expression "(local_60 != (char *)0x0)" ( (binary_expression "local_60 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)" ( (comma_expression "fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0" (call_expression "fputs(local_60,*(FILE **)pcVar17)" identifier (argument_list "(local_60,*(FILE **)pcVar17)" ( identifier , (pointer_expression "*(FILE **)pcVar17" * (cast_expression "(FILE **)pcVar17" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) , (binary_expression "local_5c != (code *)0x0 || local_58 != 0" (binary_expression "local_5c != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_58 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n              printf(local_74);\n            }" { (expression_statement "printf(local_74);" (call_expression "printf(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;) })) (expression_statement "pcVar17 = local_c4;" (assignment_expression "pcVar17 = local_c4" identifier = identifier) ;) (expression_statement "fwrite(local_9c,1,4,*(FILE **)local_c4);" (call_expression "fwrite(local_9c,1,4,*(FILE **)local_c4)" identifier (argument_list "(local_9c,1,4,*(FILE **)local_c4)" ( identifier , number_literal , number_literal , (pointer_expression "*(FILE **)local_c4" * (cast_expression "(FILE **)local_c4" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_0001e910();" (call_expression "FUN_0001e910()" identifier (argument_list "()" ( ))) ;) (expression_statement "fputc(0x2d,*(FILE **)pcVar17);" (call_expression "fputc(0x2d,*(FILE **)pcVar17)" identifier (argument_list "(0x2d,*(FILE **)pcVar17)" ( number_literal , (pointer_expression "*(FILE **)pcVar17" * (cast_expression "(FILE **)pcVar17" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_0001e910();" (call_expression "FUN_0001e910()" identifier (argument_list "()" ( ))) ;) (expression_statement "printf((char *)local_8c);" (call_expression "printf((char *)local_8c)" identifier (argument_list "((char *)local_8c)" ( (cast_expression "(char *)local_8c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }" if (parenthesized_expression "(local_4c != (void *)0x0)" ( (binary_expression "local_4c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }" { (expression_statement "uVar1 = *(ushort *)(pcVar6 + 0x18);" (assignment_expression "uVar1 = *(ushort *)(pcVar6 + 0x18)" identifier = (pointer_expression "*(ushort *)(pcVar6 + 0x18)" * (cast_expression "(ushort *)(pcVar6 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x18)" ( (binary_expression "pcVar6 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "local_b4 = *(code **)(pcVar6 + 0x1c);" (assignment_expression "local_b4 = *(code **)(pcVar6 + 0x1c)" identifier = (pointer_expression "*(code **)(pcVar6 + 0x1c)" * (cast_expression "(code **)(pcVar6 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar6 + 0x1c)" ( (binary_expression "pcVar6 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_a8 = local_40;" (assignment_expression "local_a8 = local_40" identifier = identifier) ;) (expression_statement "local_b0 = *(uint *)(pcVar6 + 0x20);" (assignment_expression "local_b0 = *(uint *)(pcVar6 + 0x20)" identifier = (pointer_expression "*(uint *)(pcVar6 + 0x20)" * (cast_expression "(uint *)(pcVar6 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 0x20)" ( (binary_expression "pcVar6 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);" (assignment_expression "local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1)" identifier = (cast_expression "(uint *)CONCAT22(local_a4._2_2_,uVar1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(local_a4._2_2_,uVar1)" identifier (argument_list "(local_a4._2_2_,uVar1)" ( (field_expression "local_a4._2_2_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_ac = local_44;" (assignment_expression "local_ac = local_44" identifier = identifier) ;) (expression_statement "pcVar17 = local_b4 + -(int)local_44;" (assignment_expression "pcVar17 = local_b4 + -(int)local_44" identifier = (binary_expression "local_b4 + -(int)local_44" identifier + (unary_expression "-(int)local_44" - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);" (assignment_expression "uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44)" identifier = (binary_expression "(local_b0 - local_40) - (uint)(local_b4 < local_44)" (parenthesized_expression "(local_b0 - local_40)" ( (binary_expression "local_b0 - local_40" identifier - identifier) )) - (call_expression "(uint)(local_b4 < local_44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b4 < local_44)" ( (binary_expression "local_b4 < local_44" identifier < identifier) ))))) ;) (expression_statement "local_bc = local_48;" (assignment_expression "local_bc = local_48" identifier = identifier) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (if_statement "if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }" { (expression_statement "pcVar11 = local_b4;" (assignment_expression "pcVar11 = local_b4" identifier = identifier) ;) (if_statement "if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }" if (parenthesized_expression "(uVar15 < (pcVar17 < local_48))" ( (binary_expression "uVar15 < (pcVar17 < local_48)" identifier < (parenthesized_expression "(pcVar17 < local_48)" ( (binary_expression "pcVar17 < local_48" identifier < identifier) ))) )) (compound_statement "{\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }" { (labeled_statement "LAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));" statement_identifier : (expression_statement "local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));" (assignment_expression "local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44))" identifier = (cast_expression "(code *)((int)local_4c + ((int)pcVar11 - (int)local_44))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_4c + ((int)pcVar11 - (int)local_44))" ( (binary_expression "(int)local_4c + ((int)pcVar11 - (int)local_44)" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pcVar11 - (int)local_44)" ( (binary_expression "(int)pcVar11 - (int)local_44" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;)) (expression_statement "uVar31 = (*(code *)*local_78)();" (assignment_expression "uVar31 = (*(code *)*local_78)()" identifier = (call_expression "(*(code *)*local_78)()" (parenthesized_expression "(*(code *)*local_78)" ( (pointer_expression "*(code *)*local_78" * (cast_expression "(code *)*local_78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_78" * identifier))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar15 = (uint)(uVar31 >> 0x20);" (assignment_expression "uVar15 = (uint)(uVar31 >> 0x20)" identifier = (call_expression "(uint)(uVar31 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 >> 0x20)" ( (binary_expression "uVar31 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_a4 = (uint *)uVar31;" (assignment_expression "local_a4 = (uint *)uVar31" identifier = (cast_expression "(uint *)uVar31" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puVar10 = &UNK_00050218 + unaff_EBP;" (assignment_expression "puVar10 = &UNK_00050218 + unaff_EBP" identifier = (binary_expression "&UNK_00050218 + unaff_EBP" (pointer_expression "&UNK_00050218" & identifier) + identifier)) ;) (if_statement "if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }" if (parenthesized_expression "((uVar31 & 0x100000000) != 0)" ( (binary_expression "(uVar31 & 0x100000000) != 0" (parenthesized_expression "(uVar31 & 0x100000000)" ( (binary_expression "uVar31 & 0x100000000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }" { (expression_statement "puVar10 = (undefined *)(unaff_EBP + 0x4ce56);" (assignment_expression "puVar10 = (undefined *)(unaff_EBP + 0x4ce56)" identifier = (cast_expression "(undefined *)(unaff_EBP + 0x4ce56)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x4ce56)" ( (binary_expression "unaff_EBP + 0x4ce56" identifier + number_literal) )))) ;) })) (expression_statement "uVar18 = uVar15 >> 0x10;" (assignment_expression "uVar18 = uVar15 >> 0x10" identifier = (binary_expression "uVar15 >> 0x10" identifier >> number_literal)) ;) (expression_statement "printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);" (call_expression "printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10)" identifier (argument_list "((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10)" ( (cast_expression "(char *)(unaff_EBP + 0x578d3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x578d3)" ( (binary_expression "unaff_EBP + 0x578d3" identifier + number_literal) ))) , identifier , (binary_expression "uVar15 & 0xffff" identifier & number_literal) , identifier ))) ;) (if_statement "if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }" if (parenthesized_expression "(uVar18 == 1)" ( (binary_expression "uVar18 == 1" identifier == number_literal) )) (compound_statement "{\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }" { (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "pcVar17 = local_48 + (int)local_4c;" (assignment_expression "pcVar17 = local_48 + (int)local_4c" identifier = (binary_expression "local_48 + (int)local_4c" identifier + (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }" if (parenthesized_expression "(local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c)" ( (binary_expression "local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c" (binary_expression "local_bc + (int)local_a4 * *local_c0 + 8" (binary_expression "local_bc + (int)local_a4 * *local_c0" identifier + (binary_expression "(int)local_a4 * *local_c0" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) * (pointer_expression "*local_c0" * identifier))) + number_literal) < (binary_expression "local_48 + (int)local_4c" identifier + (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }" { (expression_statement "pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;" (assignment_expression "pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8" identifier = (binary_expression "local_bc + (int)local_a4 * *local_c0 + 8" (binary_expression "local_bc + (int)local_a4 * *local_c0" identifier + (binary_expression "(int)local_a4 * *local_c0" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) * (pointer_expression "*local_c0" * identifier))) + number_literal)) ;) })) (expression_statement "pcVar11 = local_bc + 8;" (assignment_expression "pcVar11 = local_bc + 8" identifier = (binary_expression "local_bc + 8" identifier + number_literal)) ;) (while_statement "while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }" while (parenthesized_expression "(pcVar11 < pcVar17)" ( (binary_expression "pcVar11 < pcVar17" identifier < identifier) )) (compound_statement "{\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }" { (expression_statement "local_bc = pcVar6;" (assignment_expression "local_bc = pcVar6" identifier = identifier) ;) (expression_statement "pcVar11 = (code *)FUN_0004c6d0();" (assignment_expression "pcVar11 = (code *)FUN_0004c6d0()" identifier = (cast_expression "(code *)FUN_0004c6d0()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0004c6d0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pcVar6 = local_bc;" (assignment_expression "pcVar6 = local_bc" identifier = identifier) ;) })) }) (else_clause "else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }" else (compound_statement "{\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }" { (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) }))) (goto_statement "goto LAB_0002cbe7;" goto statement_identifier ;) })) }) (else_clause "else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }" else (compound_statement "{\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }" { (expression_statement "iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);" (assignment_expression "iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c)" identifier = (binary_expression "(uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c)" (binary_expression "(uint)uVar1 * 0x48" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))))) ;) (expression_statement "uVar18 = *(uint *)(iVar12 + 0x10);" (assignment_expression "uVar18 = *(uint *)(iVar12 + 0x10)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x10)" * (cast_expression "(uint *)(iVar12 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }" if (parenthesized_expression "(uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48))" ( (binary_expression "uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)" (binary_expression "uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18)" (binary_expression "uVar15 + *(int *)(iVar12 + 0x14)" identifier + (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4((uint)pcVar17,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)pcVar17,uVar18)" identifier (argument_list "((uint)pcVar17,uVar18)" ( (cast_expression "(uint)pcVar17" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))))) < (call_expression "(uint)(pcVar17 + uVar18 < local_48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar17 + uVar18 < local_48)" ( (binary_expression "pcVar17 + uVar18 < local_48" (binary_expression "pcVar17 + uVar18" identifier + identifier) < identifier) )))) )) (compound_statement "{\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }" { (expression_statement "pcVar11 = local_b4 + uVar18;" (assignment_expression "pcVar11 = local_b4 + uVar18" identifier = (binary_expression "local_b4 + uVar18" identifier + identifier)) ;) (goto_statement "goto LAB_0002cb5e;" goto statement_identifier ;) })) }))) (expression_statement "dcgettext();" (call_expression "dcgettext()" identifier (argument_list "()" ( ))) ;) (expression_statement "warn();" (call_expression "warn()" identifier (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;" statement_identifier : (expression_statement "pcVar6 = pcVar6 + 0x24;" (assignment_expression "pcVar6 = pcVar6 + 0x24" identifier = (binary_expression "pcVar6 + 0x24" identifier + number_literal)) ;)) }) while (parenthesized_expression "(pcVar6 < local_54 + local_50 * 0x24)" ( (binary_expression "pcVar6 < local_54 + local_50 * 0x24" identifier < (binary_expression "local_54 + local_50 * 0x24" identifier + (binary_expression "local_50 * 0x24" identifier * number_literal))) )) ;) })) (expression_statement "free(local_2c);" (call_expression "free(local_2c)" identifier (argument_list "(local_2c)" ( identifier ))) ;) })) })) }) (else_clause "else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }" else (compound_statement "{\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }" { (expression_statement "puVar14 = *(uint **)(param_1 + 0x60);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x60)" identifier = (pointer_expression "*(uint **)(param_1 + 0x60)" * (cast_expression "(uint **)(param_1 + 0x60)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }" if (parenthesized_expression "(puVar14 != (uint *)0x0)" ( (binary_expression "puVar14 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }" { (labeled_statement "LAB_0002bfdd:\n      local_b0 = local_a4[9];" statement_identifier : (expression_statement "local_b0 = local_a4[9];" (assignment_expression "local_b0 = local_a4[9]" identifier = (subscript_expression "local_a4[9]" identifier [ number_literal ])) ;)) (expression_statement "local_b4 = (code *)local_a4[8];" (assignment_expression "local_b4 = (code *)local_a4[8]" identifier = (cast_expression "(code *)local_a4[8]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_a4[8]" identifier [ number_literal ]))) ;) (expression_statement "puVar13 = puVar14 + iVar12 * 0xe;" (assignment_expression "puVar13 = puVar14 + iVar12 * 0xe" identifier = (binary_expression "puVar14 + iVar12 * 0xe" identifier + (binary_expression "iVar12 * 0xe" identifier * number_literal))) ;) (for_statement "for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }" for ( ; (comma_expression "uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13" (assignment_expression "uVar15 = local_3c" identifier = identifier) , (comma_expression "uVar18 = local_38, puVar14 < puVar13" (assignment_expression "uVar18 = local_38" identifier = identifier) , (binary_expression "puVar14 < puVar13" identifier < identifier))) ; (assignment_expression "puVar14 = puVar14 + 0xe" identifier = (binary_expression "puVar14 + 0xe" identifier + number_literal)) ) (compound_statement "{\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }" { (expression_statement "local_c4 = (code *)puVar13;" (assignment_expression "local_c4 = (code *)puVar13" identifier = (cast_expression "(code *)puVar13" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }" if (parenthesized_expression "(*puVar14 == 1)" ( (binary_expression "*puVar14 == 1" (pointer_expression "*puVar14" * identifier) == number_literal) )) (compound_statement "{\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }" { (expression_statement "uVar15 = puVar14[4];" (assignment_expression "uVar15 = puVar14[4]" identifier = (subscript_expression "puVar14[4]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar14[5];" (assignment_expression "uVar18 = puVar14[5]" identifier = (subscript_expression "puVar14[5]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = local_a4[5];" (assignment_expression "uVar21 = local_a4[5]" identifier = (subscript_expression "local_a4[5]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = local_a4[4];" (assignment_expression "uVar3 = local_a4[4]" identifier = (subscript_expression "local_a4[4]" identifier [ number_literal ])) ;) (if_statement "if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }" if (parenthesized_expression "(uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18)" ( (binary_expression "uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18" (binary_expression "uVar18 <= uVar21" identifier <= identifier) && (binary_expression "(uint)(uVar3 < uVar15) <= uVar21 - uVar18" (call_expression "(uint)(uVar3 < uVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar15)" ( (binary_expression "uVar3 < uVar15" identifier < identifier) ))) <= (binary_expression "uVar21 - uVar18" identifier - identifier))) )) (compound_statement "{\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }" { (expression_statement "local_bc = local_b4 + uVar3;" (assignment_expression "local_bc = local_b4 + uVar3" identifier = (binary_expression "local_b4 + uVar3" identifier + identifier)) ;) (expression_statement "local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);" (assignment_expression "local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4)" identifier = (binary_expression "uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4)" (binary_expression "uVar21 + local_b0" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar3,(uint)local_b4)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar3,(uint)local_b4)" identifier (argument_list "(uVar3,(uint)local_b4)" ( identifier , (cast_expression "(uint)local_b4" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);" (assignment_expression "uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10])" identifier = (binary_expression "uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10])" (binary_expression "uVar18 + puVar14[0xb]" identifier + (subscript_expression "puVar14[0xb]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar15,puVar14[10])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar15,puVar14[10])" identifier (argument_list "(uVar15,puVar14[10])" ( identifier , (subscript_expression "puVar14[10]" identifier [ number_literal ]) )))))) ;) (if_statement "if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;" if (parenthesized_expression "(local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8)" ( (binary_expression "local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8" (binary_expression "local_b8 <= uVar21" identifier <= identifier) && (binary_expression "(uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8" (call_expression "(uint)((code *)(uVar15 + puVar14[10]) < local_bc)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((code *)(uVar15 + puVar14[10]) < local_bc)" ( (binary_expression "(code *)(uVar15 + puVar14[10]) < local_bc" (cast_expression "(code *)(uVar15 + puVar14[10])" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar15 + puVar14[10])" ( (binary_expression "uVar15 + puVar14[10]" identifier + (subscript_expression "puVar14[10]" identifier [ number_literal ])) ))) < identifier) ))) <= (binary_expression "uVar21 - local_b8" identifier - identifier))) )) (break_statement "break;" break ;)) })) })) })) (goto_statement "goto LAB_0002c050;" goto statement_identifier ;) })) (expression_statement "iVar12 = FUN_000269d0();" (assignment_expression "iVar12 = FUN_000269d0()" identifier = (call_expression "FUN_000269d0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }" { (expression_statement "puVar14 = *(uint **)(param_1 + 0x60);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x60)" identifier = (pointer_expression "*(uint **)(param_1 + 0x60)" * (cast_expression "(uint **)(param_1 + 0x60)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x4c)" identifier = (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002bfdd;" goto statement_identifier ;) })) }))) (if_statement "if (local_54 != (code *)0x0) {\n    free(local_54);\n  }" if (parenthesized_expression "(local_54 != (code *)0x0)" ( (binary_expression "local_54 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_54);\n  }" { (expression_statement "free(local_54);" (call_expression "free(local_54)" identifier (argument_list "(local_54)" ( identifier ))) ;) })) (labeled_statement "LAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }" statement_identifier : (if_statement "if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }" if (parenthesized_expression "(local_4c != (void *)0x0)" ( (binary_expression "local_4c != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(local_4c);\n  }" { (expression_statement "free(local_4c);" (call_expression "free(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) }))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = (void *)0x0;" (assignment_expression "local_4c = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x0002c26e:\n  local_90 = local_90 + -1;" statement_identifier : (expression_statement "local_90 = local_90 + -1;" (assignment_expression "local_90 = local_90 + -1" identifier = (binary_expression "local_90 + -1" identifier + number_literal)) ;)) (if_statement "if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;" if (parenthesized_expression "(local_90 == (byte *)0xffffffff)" ( (binary_expression "local_90 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002c274;" goto statement_identifier ;)) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" identifier = (pointer_expression "*(int **)(param_1 + 0x54)" * (cast_expression "(int **)(param_1 + 0x54)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002bbd0;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT , (subscript_expression IDENT [ LIT ]) , (subscript_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 { (expression_statement (assignment_expression IDENT = (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 = (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == 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 = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_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) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * 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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }))))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * 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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) }))) }))) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * 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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }))))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * 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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) }))) }))) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 (pointer_expression & IDENT) + IDENT) )))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) , (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 *)) ) (pointer_expression * IDENT))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (goto_statement goto statement_identifier ;) })) })) (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 ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = 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 *)) ) (call_expression IDENT (argument_list ( LIT , LIT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) * LIT) ))))) ;) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT)) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 *))) ) IDENT))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 *))) ) IDENT))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + IDENT) + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT)) ;) (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) )))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT)) ;) (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) )))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression IDENT + (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + (binary_expression IDENT * LIT))) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) < IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) * LIT))) ))) )) (compound_statement { (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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 < (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT << LIT)) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * 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 IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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 = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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 = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = (field_expression IDENT . field_identifier)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + (binary_expression IDENT * LIT))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) != LIT) || (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + (binary_expression IDENT * LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (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 (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression IDENT != LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , IDENT , (binary_expression IDENT & LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * IDENT))) + LIT) < (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * IDENT))) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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 (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (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 ))) ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + (binary_expression IDENT * LIT))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (for_statement for ( ; (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT < IDENT))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))) < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) (break_statement break ;)) })) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 FUN_0002ba30(int param_1)\n\n{\n  ushort uVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  code *pcVar6;\n  char *pcVar7;\n  int *piVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int extraout_ECX;\n  int iVar12;\n  uint *puVar13;\n  uint *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte *pbVar16;\n  code *pcVar17;\n  uint uVar18;\n  code **ppcVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  byte *pbVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined8 uVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  undefined1 auStack_cc [8];\n  code *local_c4;\n  int *local_c0;\n  code *local_bc;\n  uint local_b8;\n  code *local_b4;\n  uint local_b0;\n  code *local_ac;\n  uint local_a8;\n  uint *local_a4;\n  char *local_a0;\n  void *local_9c;\n  uint local_98;\n  int *local_94;\n  byte *local_90;\n  code *local_8c;\n  char **local_88;\n  code *local_84;\n  undefined4 local_80;\n  code **local_7c;\n  undefined4 *local_78;\n  char *local_74;\n  undefined4 local_70;\n  undefined4 local_64;\n  char *local_60;\n  code *local_5c;\n  int local_58;\n  code *local_54;\n  uint local_50;\n  void *local_4c;\n  code *local_48;\n  code *local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int *local_34;\n  size_t local_30;\n  void *local_2c;\n  size_t local_28;\n  void *local_24;\n  int local_20;\n  \n  bVar28 = 0;\n  pcVar6 = (code *)FUN_0004ab89();\n  local_70 = 1;\n  ppcVar19 = &local_54;\n  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }\n  piVar8 = *(int **)(param_1 + 0x54);\n  iVar12 = *(int *)(param_1 + 0x5c);\n  if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\nLAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }\n  if (local_24 != (void *)0x0) {\n    free(local_24);\n  }\n  return local_70;\nLAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);\nLAB_0002be9a:\n  pcVar6 = local_c4;\n  if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }\n  local_44 = *(code **)((int)local_c4 + 0x10);\n  local_40 = *(uint *)((int)local_c4 + 0x14);\n  dcgettext();\n  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));\n  local_48 = (code *)0x0;\n  if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }\n  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);\n  FUN_0006b5b0();\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  local_50 = 0;\n  iVar12 = *(int *)(param_1 + 0x4c);\n  if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }\n  if (local_54 != (code *)0x0) {\n    free(local_54);\n  }\nLAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }\n  local_54 = (code *)0x0;\n  local_4c = (void *)0x0;\njoined_r0x0002c26e:\n  local_90 = local_90 + -1;\n  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;\n  piVar8 = *(int **)(param_1 + 0x54);\n  goto LAB_0002bbd0;\n}" (type_identifier "undefined4") (function_declarator "FUN_0002ba30(int param_1)" (identifier "FUN_0002ba30") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  ushort uVar1;\n  undefined4 *puVar2;\n  uint uVar3;\n  int iVar4;\n  undefined1 *puVar5;\n  code *pcVar6;\n  char *pcVar7;\n  int *piVar8;\n  byte *pbVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  int extraout_ECX;\n  int iVar12;\n  uint *puVar13;\n  uint *puVar14;\n  uint uVar15;\n  int unaff_EBP;\n  byte *pbVar16;\n  code *pcVar17;\n  uint uVar18;\n  code **ppcVar19;\n  int *piVar20;\n  uint uVar21;\n  int iVar22;\n  byte *pbVar23;\n  undefined1 uVar24;\n  bool bVar25;\n  undefined1 uVar26;\n  bool bVar27;\n  byte bVar28;\n  undefined8 uVar29;\n  longlong lVar30;\n  ulonglong uVar31;\n  undefined1 auStack_cc [8];\n  code *local_c4;\n  int *local_c0;\n  code *local_bc;\n  uint local_b8;\n  code *local_b4;\n  uint local_b0;\n  code *local_ac;\n  uint local_a8;\n  uint *local_a4;\n  char *local_a0;\n  void *local_9c;\n  uint local_98;\n  int *local_94;\n  byte *local_90;\n  code *local_8c;\n  char **local_88;\n  code *local_84;\n  undefined4 local_80;\n  code **local_7c;\n  undefined4 *local_78;\n  char *local_74;\n  undefined4 local_70;\n  undefined4 local_64;\n  char *local_60;\n  code *local_5c;\n  int local_58;\n  code *local_54;\n  uint local_50;\n  void *local_4c;\n  code *local_48;\n  code *local_44;\n  uint local_40;\n  uint local_3c;\n  uint local_38;\n  int *local_34;\n  size_t local_30;\n  void *local_2c;\n  size_t local_28;\n  void *local_24;\n  int local_20;\n  \n  bVar28 = 0;\n  pcVar6 = (code *)FUN_0004ab89();\n  local_70 = 1;\n  ppcVar19 = &local_54;\n  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }\n  piVar8 = *(int **)(param_1 + 0x54);\n  iVar12 = *(int *)(param_1 + 0x5c);\n  if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\nLAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }\n  if (local_24 != (void *)0x0) {\n    free(local_24);\n  }\n  return local_70;\nLAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);\nLAB_0002be9a:\n  pcVar6 = local_c4;\n  if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }\n  local_44 = *(code **)((int)local_c4 + 0x10);\n  local_40 = *(uint *)((int)local_c4 + 0x14);\n  dcgettext();\n  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));\n  local_48 = (code *)0x0;\n  if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }\n  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);\n  FUN_0006b5b0();\n  pcVar7 = (char *)dcgettext();\n  printf(pcVar7);\n  local_50 = 0;\n  iVar12 = *(int *)(param_1 + 0x4c);\n  if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }\n  if (local_54 != (code *)0x0) {\n    free(local_54);\n  }\nLAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }\n  local_54 = (code *)0x0;\n  local_4c = (void *)0x0;\njoined_r0x0002c26e:\n  local_90 = local_90 + -1;\n  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;\n  piVar8 = *(int **)(param_1 + 0x54);\n  goto LAB_0002bbd0;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined1 *puVar5;" (type_identifier "undefined1") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "int extraout_ECX;" (primitive_type "int") (identifier "extraout_ECX") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint *puVar13;" (type_identifier "uint") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "code *pcVar17;" (type_identifier "code") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "code **ppcVar19;" (type_identifier "code") (pointer_declarator "**ppcVar19" (* "*") (pointer_declarator "*ppcVar19" (* "*") (identifier "ppcVar19"))) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "undefined1 uVar24;" (type_identifier "undefined1") (identifier "uVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "undefined1 uVar26;" (type_identifier "undefined1") (identifier "uVar26") (; ";")) (declaration "bool bVar27;" (primitive_type "bool") (identifier "bVar27") (; ";")) (declaration "byte bVar28;" (type_identifier "byte") (identifier "bVar28") (; ";")) (declaration "undefined8 uVar29;" (type_identifier "undefined8") (identifier "uVar29") (; ";")) (declaration "longlong lVar30;" (type_identifier "longlong") (identifier "lVar30") (; ";")) (declaration "ulonglong uVar31;" (type_identifier "ulonglong") (identifier "uVar31") (; ";")) (declaration "undefined1 auStack_cc [8];" (type_identifier "undefined1") (array_declarator "auStack_cc [8]" (identifier "auStack_cc") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "code *local_c4;" (type_identifier "code") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")) (; ";")) (declaration "int *local_c0;" (primitive_type "int") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "code *local_bc;" (type_identifier "code") (pointer_declarator "*local_bc" (* "*") (identifier "local_bc")) (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "code *local_b4;" (type_identifier "code") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4")) (; ";")) (declaration "uint local_b0;" (type_identifier "uint") (identifier "local_b0") (; ";")) (declaration "code *local_ac;" (type_identifier "code") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")) (; ";")) (declaration "uint local_a8;" (type_identifier "uint") (identifier "local_a8") (; ";")) (declaration "uint *local_a4;" (type_identifier "uint") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4")) (; ";")) (declaration "char *local_a0;" (primitive_type "char") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "void *local_9c;" (primitive_type "void") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c")) (; ";")) (declaration "uint local_98;" (type_identifier "uint") (identifier "local_98") (; ";")) (declaration "int *local_94;" (primitive_type "int") (pointer_declarator "*local_94" (* "*") (identifier "local_94")) (; ";")) (declaration "byte *local_90;" (type_identifier "byte") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "code *local_8c;" (type_identifier "code") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "char **local_88;" (primitive_type "char") (pointer_declarator "**local_88" (* "*") (pointer_declarator "*local_88" (* "*") (identifier "local_88"))) (; ";")) (declaration "code *local_84;" (type_identifier "code") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "undefined4 local_80;" (type_identifier "undefined4") (identifier "local_80") (; ";")) (declaration "code **local_7c;" (type_identifier "code") (pointer_declarator "**local_7c" (* "*") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c"))) (; ";")) (declaration "undefined4 *local_78;" (type_identifier "undefined4") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "char *local_74;" (primitive_type "char") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "undefined4 local_70;" (type_identifier "undefined4") (identifier "local_70") (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "char *local_60;" (primitive_type "char") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "code *local_5c;" (type_identifier "code") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "code *local_54;" (type_identifier "code") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "void *local_4c;" (primitive_type "void") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "code *local_48;" (type_identifier "code") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "code *local_44;" (type_identifier "code") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "int *local_34;" (primitive_type "int") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "size_t local_30;" (primitive_type "size_t") (identifier "local_30") (; ";")) (declaration "void *local_2c;" (primitive_type "void") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "size_t local_28;" (primitive_type "size_t") (identifier "local_28") (; ";")) (declaration "void *local_24;" (primitive_type "void") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "bVar28 = 0;" (assignment_expression "bVar28 = 0" (identifier "bVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar6 = (code *)FUN_0004ab89();" (assignment_expression "pcVar6 = (code *)FUN_0004ab89()" (identifier "pcVar6") (= "=") (cast_expression "(code *)FUN_0004ab89()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0004ab89()" (identifier "FUN_0004ab89") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_70 = 1;" (assignment_expression "local_70 = 1" (identifier "local_70") (= "=") (number_literal "1")) (; ";")) (expression_statement "ppcVar19 = &local_54;" (assignment_expression "ppcVar19 = &local_54" (identifier "ppcVar19") (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";")) (for_statement "for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "iVar12 = extraout_ECX" (identifier "iVar12") (= "=") (identifier "extraout_ECX")) (; ";") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *ppcVar19 = pcVar6;\n    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;\n  }" ({ "{") (expression_statement "*ppcVar19 = pcVar6;" (assignment_expression "*ppcVar19 = pcVar6" (pointer_expression "*ppcVar19" (* "*") (identifier "ppcVar19")) (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;" (assignment_expression "ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1" (identifier "ppcVar19") (= "=") (binary_expression "ppcVar19 + (uint)bVar28 * -2 + 1" (binary_expression "ppcVar19 + (uint)bVar28 * -2" (identifier "ppcVar19") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x54)" (* "*") (cast_expression "(int **)(param_1 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(param_1 + 0x5c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x5c)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (if_statement "if (piVar8 != (int *)0x0) {\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }" (if "if") (parenthesized_expression "(piVar8 != (int *)0x0)" (( "(") (binary_expression "piVar8 != (int *)0x0" (identifier "piVar8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_bc = (code *)(unaff_EBP + 0x4c725);\n    local_c4 = (code *)0x0;\n    piVar20 = (int *)0x0;\n    local_a4 = (uint *)(unaff_EBP + 0x577cb);\nLAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);\n    local_94 = (int *)0x0;\n    local_90 = (byte *)((int)local_c4 - 1);\n    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);\n    if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }\n  }" ({ "{") (expression_statement "local_bc = (code *)(unaff_EBP + 0x4c725);" (assignment_expression "local_bc = (code *)(unaff_EBP + 0x4c725)" (identifier "local_bc") (= "=") (cast_expression "(code *)(unaff_EBP + 0x4c725)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4c725)" (( "(") (binary_expression "unaff_EBP + 0x4c725" (identifier "unaff_EBP") (+ "+") (number_literal "0x4c725")) () ")")))) (; ";")) (expression_statement "local_c4 = (code *)0x0;" (assignment_expression "local_c4 = (code *)0x0" (identifier "local_c4") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar20 = (int *)0x0;" (assignment_expression "piVar20 = (int *)0x0" (identifier "piVar20") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_a4 = (uint *)(unaff_EBP + 0x577cb);" (assignment_expression "local_a4 = (uint *)(unaff_EBP + 0x577cb)" (identifier "local_a4") (= "=") (cast_expression "(uint *)(unaff_EBP + 0x577cb)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x577cb)" (( "(") (binary_expression "unaff_EBP + 0x577cb" (identifier "unaff_EBP") (+ "+") (number_literal "0x577cb")) () ")")))) (; ";")) (labeled_statement "LAB_0002bab7:\n    do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);" (statement_identifier "LAB_0002bab7") (: ":") (do_statement "do {\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    } while (piVar20 < piVar8);" (do "do") (compound_statement "{\n      if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }\n      piVar20 = (int *)((int)piVar20 + 1);\n      iVar12 = iVar12 + 0x48;\n    }" ({ "{") (if_statement "if (*(int *)(iVar12 + 4) == 2) {\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }\n      else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 4) == 2)" (( "(") (binary_expression "*(int *)(iVar12 + 4) == 2" (pointer_expression "*(int *)(iVar12 + 4)" (* "*") (cast_expression "(int *)(iVar12 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }\n      }" ({ "{") (if_statement "if (*(int **)(iVar12 + 0x28) < piVar8) {\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }" (if "if") (parenthesized_expression "(*(int **)(iVar12 + 0x28) < piVar8)" (( "(") (binary_expression "*(int **)(iVar12 + 0x28) < piVar8" (pointer_expression "*(int **)(iVar12 + 0x28)" (* "*") (cast_expression "(int **)(iVar12 + 0x28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")")))) (< "<") (identifier "piVar8")) () ")")) (compound_statement "{\n          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }\n          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);\n          if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }\n          dcgettext();\n          piVar8 = local_c0;\n          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);\n          local_20 = 0;\n          if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }\n          piVar20 = (int *)((int)piVar20 + 1);\n          iVar12 = iVar12 + 0x48;\n          piVar8 = *(int **)(param_1 + 0x54);\n          if (piVar8 <= piVar20) break;\n          goto LAB_0002bab7;\n        }" ({ "{") (if_statement "if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n            local_34 = (int *)FUN_00022830();\n          }\n          else {\n            local_34 = (int *)FUN_000222e0();\n          }" (if "if") (parenthesized_expression "(*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0)" (( "(") (binary_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0" (pointer_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP)" (* "*") (cast_expression "(int *)(&DAT_0008a8e7 + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0008a8e7 + unaff_EBP)" (( "(") (binary_expression "&DAT_0008a8e7 + unaff_EBP" (pointer_expression "&DAT_0008a8e7" (& "&") (identifier "DAT_0008a8e7")) (+ "+") (identifier "unaff_EBP")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_34 = (int *)FUN_00022830();\n          }" ({ "{") (expression_statement "local_34 = (int *)FUN_00022830();" (assignment_expression "local_34 = (int *)FUN_00022830()" (identifier "local_34") (= "=") (cast_expression "(int *)FUN_00022830()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00022830()" (identifier "FUN_00022830") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            local_34 = (int *)FUN_000222e0();\n          }" (else "else") (compound_statement "{\n            local_34 = (int *)FUN_000222e0();\n          }" ({ "{") (expression_statement "local_34 = (int *)FUN_000222e0();" (assignment_expression "local_34 = (int *)FUN_000222e0()" (identifier "local_34") (= "=") (cast_expression "(int *)FUN_000222e0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000222e0()" (identifier "FUN_000222e0") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (expression_statement "local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);" (assignment_expression "local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48)" (identifier "local_c0") (= "=") (cast_expression "(int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48)" (( "(") (binary_expression "*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48" (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (+ "+") (binary_expression "*(int *)(iVar12 + 0x28) * 0x48" (pointer_expression "*(int *)(iVar12 + 0x28)" (* "*") (cast_expression "(int *)(iVar12 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (number_literal "0x48"))) () ")")))) (; ";")) (if_statement "if (local_24 != (void *)0x0) {\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }" (if "if") (parenthesized_expression "(local_24 != (void *)0x0)" (( "(") (binary_expression "local_24 != (void *)0x0" (identifier "local_24") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            dcgettext();\n            error();\n            free(local_24);\n            local_70 = 0;\n          }" ({ "{") (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "error();" (call_expression "error()" (identifier "error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(local_24);" (call_expression "free(local_24)" (identifier "free") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar8 = local_c0;" (assignment_expression "piVar8 = local_c0" (identifier "piVar8") (= "=") (identifier "local_c0")) (; ";")) (expression_statement "local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);" (assignment_expression "local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9])" (identifier "local_24") (= "=") (cast_expression "(void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9])" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001bf90(1,0,local_c0[8],local_c0[9])" (identifier "FUN_0001bf90") (argument_list "(1,0,local_c0[8],local_c0[9])" (( "(") (number_literal "1") (, ",") (number_literal "0") (, ",") (subscript_expression "local_c0[8]" (identifier "local_c0") ([ "[") (number_literal "8") (] "]")) (, ",") (subscript_expression "local_c0[9]" (identifier "local_c0") ([ "[") (number_literal "9") (] "]")) () ")"))))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_24 != (void *)0x0) {\n            local_20 = piVar8[8];\n          }" (if "if") (parenthesized_expression "(local_24 != (void *)0x0)" (( "(") (binary_expression "local_24 != (void *)0x0" (identifier "local_24") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_20 = piVar8[8];\n          }" ({ "{") (expression_statement "local_20 = piVar8[8];" (assignment_expression "local_20 = piVar8[8]" (identifier "local_20") (= "=") (subscript_expression "piVar8[8]" (identifier "piVar8") ([ "[") (number_literal "8") (] "]"))) (; ";")) (} "}"))) (expression_statement "piVar20 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar20 + 1)" (identifier "piVar20") (= "=") (cast_expression "(int *)((int)piVar20 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar20 + 1)" (( "(") (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar12 = iVar12 + 0x48;" (assignment_expression "iVar12 = iVar12 + 0x48" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 0x48" (identifier "iVar12") (+ "+") (number_literal "0x48"))) (; ";")) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x54)" (* "*") (cast_expression "(int **)(param_1 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if (piVar8 <= piVar20) break;" (if "if") (parenthesized_expression "(piVar8 <= piVar20)" (( "(") (binary_expression "piVar8 <= piVar20" (identifier "piVar8") (<= "<=") (identifier "piVar20")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_0002bab7;" (goto "goto") (statement_identifier "LAB_0002bab7") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }" (else "else") (compound_statement "{\n        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));\n      }" ({ "{") (expression_statement "local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));" (assignment_expression "local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001))" (identifier "local_c4") (= "=") (cast_expression "(code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001))" (( "(") (binary_expression "(int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001)" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (call_expression "(uint)(*(int *)(iVar12 + 4) == 0x70000001)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar12 + 4) == 0x70000001)" (( "(") (binary_expression "*(int *)(iVar12 + 4) == 0x70000001" (pointer_expression "*(int *)(iVar12 + 4)" (* "*") (cast_expression "(int *)(iVar12 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0x70000001")) () ")")))) () ")")))) (; ";")) (} "}")))) (expression_statement "piVar20 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar20 + 1)" (identifier "piVar20") (= "=") (cast_expression "(int *)((int)piVar20 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar20 + 1)" (( "(") (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar12 = iVar12 + 0x48;" (assignment_expression "iVar12 = iVar12 + 0x48" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 0x48" (identifier "iVar12") (+ "+") (number_literal "0x48"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar20 < piVar8)" (( "(") (binary_expression "piVar20 < piVar8" (identifier "piVar20") (< "<") (identifier "piVar8")) () ")")) (; ";"))) (expression_statement "local_94 = (int *)0x0;" (assignment_expression "local_94 = (int *)0x0" (identifier "local_94") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_90 = (byte *)((int)local_c4 - 1);" (assignment_expression "local_90 = (byte *)((int)local_c4 - 1)" (identifier "local_90") (= "=") (cast_expression "(byte *)((int)local_c4 - 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 - 1)" (( "(") (binary_expression "(int)local_c4 - 1" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);" (assignment_expression "local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP)" (identifier "local_78") (= "=") (cast_expression "(undefined4 *)(&UNK_0008e39b + unaff_EBP)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_0008e39b + unaff_EBP)" (( "(") (binary_expression "&UNK_0008e39b + unaff_EBP" (pointer_expression "&UNK_0008e39b" (& "&") (identifier "UNK_0008e39b")) (+ "+") (identifier "unaff_EBP")) () ")")))) (; ";")) (if_statement "if (local_c4 != (code *)0x0) {\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }" (if "if") (parenthesized_expression "(local_c4 != (code *)0x0)" (( "(") (binary_expression "local_c4 != (code *)0x0" (identifier "local_c4") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);\n      puVar14 = puVar13 + (int)local_94 * 0x12;\n      if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }\n      uVar15 = puVar14[1];\n      local_a4 = puVar14;\n      piVar20 = local_94;\n      while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }\n      local_94 = (int *)((int)piVar20 + 1);\n      local_c0 = piVar20;\n      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }\n      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }\n      goto LAB_0002bc78;\n    }" ({ "{") (labeled_statement "LAB_0002bbd0:\n      puVar13 = *(uint **)(param_1 + 0x5c);" (statement_identifier "LAB_0002bbd0") (: ":") (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" (identifier "puVar13") (= "=") (pointer_expression "*(uint **)(param_1 + 0x5c)" (* "*") (cast_expression "(uint **)(param_1 + 0x5c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";"))) (expression_statement "puVar14 = puVar13 + (int)local_94 * 0x12;" (assignment_expression "puVar14 = puVar13 + (int)local_94 * 0x12" (identifier "puVar14") (= "=") (binary_expression "puVar13 + (int)local_94 * 0x12" (identifier "puVar13") (+ "+") (binary_expression "(int)local_94 * 0x12" (cast_expression "(int)local_94" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_94")) (* "*") (number_literal "0x12")))) (; ";")) (if_statement "if (piVar8 <= local_94) {\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }" (if "if") (parenthesized_expression "(piVar8 <= local_94)" (( "(") (binary_expression "piVar8 <= local_94" (identifier "piVar8") (<= "<=") (identifier "local_94")) () ")")) (compound_statement "{\nLAB_0002bc1b:\n        local_a4 = puVar14;\n                    \n        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));\n      }" ({ "{") (labeled_statement "LAB_0002bc1b:\n        local_a4 = puVar14;" (statement_identifier "LAB_0002bc1b") (: ":") (expression_statement "local_a4 = puVar14;" (assignment_expression "local_a4 = puVar14" (identifier "local_a4") (= "=") (identifier "puVar14")) (; ";"))) (expression_statement "__assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f));" (call_expression "__assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f))" (identifier "__assert_fail") (argument_list "((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,\n                      (char *)(unaff_EBP + 0x62a1f))" (( "(") (cast_expression "(char *)(unaff_EBP + 0x4cf20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4cf20)" (( "(") (binary_expression "unaff_EBP + 0x4cf20" (identifier "unaff_EBP") (+ "+") (number_literal "0x4cf20")) () ")"))) (, ",") (cast_expression "(char *)(unaff_EBP + 0x4b054)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4b054)" (( "(") (binary_expression "unaff_EBP + 0x4b054" (identifier "unaff_EBP") (+ "+") (number_literal "0x4b054")) () ")"))) (, ",") (number_literal "0x1df7") (, ",") (cast_expression "(char *)(unaff_EBP + 0x62a1f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x62a1f)" (( "(") (binary_expression "unaff_EBP + 0x62a1f" (identifier "unaff_EBP") (+ "+") (number_literal "0x62a1f")) () ")"))) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar15 = puVar14[1];" (assignment_expression "uVar15 = puVar14[1]" (identifier "uVar15") (= "=") (subscript_expression "puVar14[1]" (identifier "puVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_a4 = puVar14;" (assignment_expression "local_a4 = puVar14" (identifier "local_a4") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "piVar20 = local_94;" (assignment_expression "piVar20 = local_94" (identifier "piVar20") (= "=") (identifier "local_94")) (; ";")) (while_statement "while (uVar15 != 0x70000001) {\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }" (while "while") (parenthesized_expression "(uVar15 != 0x70000001)" (( "(") (binary_expression "uVar15 != 0x70000001" (identifier "uVar15") (!= "!=") (number_literal "0x70000001")) () ")")) (compound_statement "{\n        piVar20 = (int *)((int)piVar20 + 1);\n        if (piVar20 == piVar8) goto LAB_0002bc1b;\n        uVar15 = local_a4[0x13];\n        local_a4 = local_a4 + 0x12;\n      }" ({ "{") (expression_statement "piVar20 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar20 = (int *)((int)piVar20 + 1)" (identifier "piVar20") (= "=") (cast_expression "(int *)((int)piVar20 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar20 + 1)" (( "(") (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (piVar20 == piVar8) goto LAB_0002bc1b;" (if "if") (parenthesized_expression "(piVar20 == piVar8)" (( "(") (binary_expression "piVar20 == piVar8" (identifier "piVar20") (== "==") (identifier "piVar8")) () ")")) (goto_statement "goto LAB_0002bc1b;" (goto "goto") (statement_identifier "LAB_0002bc1b") (; ";"))) (expression_statement "uVar15 = local_a4[0x13];" (assignment_expression "uVar15 = local_a4[0x13]" (identifier "uVar15") (= "=") (subscript_expression "local_a4[0x13]" (identifier "local_a4") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "local_a4 = local_a4 + 0x12;" (assignment_expression "local_a4 = local_a4 + 0x12" (identifier "local_a4") (= "=") (binary_expression "local_a4 + 0x12" (identifier "local_a4") (+ "+") (number_literal "0x12"))) (; ";")) (} "}"))) (expression_statement "local_94 = (int *)((int)piVar20 + 1);" (assignment_expression "local_94 = (int *)((int)piVar20 + 1)" (identifier "local_94") (= "=") (cast_expression "(int *)((int)piVar20 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar20 + 1)" (( "(") (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_c0 = piVar20;" (assignment_expression "local_c0 = piVar20" (identifier "local_c0") (= "=") (identifier "piVar20")) (; ";")) (if_statement "if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)local_a4 + 9) & 2) == 0)" (( "(") (binary_expression "(*(byte *)((int)local_a4 + 9) & 2) == 0" (parenthesized_expression "(*(byte *)((int)local_a4 + 9) & 2)" (( "(") (binary_expression "*(byte *)((int)local_a4 + 9) & 2" (pointer_expression "*(byte *)((int)local_a4 + 9)" (* "*") (cast_expression "(byte *)((int)local_a4 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a4 + 9)" (( "(") (binary_expression "(int)local_a4 + 9" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar15 = *(uint *)(param_1 + 100);\n        if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        goto LAB_0002be9a;\n      }" ({ "{") (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_1 + 100)" (* "*") (cast_expression "(uint *)(param_1 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if (uVar15 == 0) {\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }\n        else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" (if "if") (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0x16;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          uVar15 = *(uint *)(param_1 + 100);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }\n          if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }\nLAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();\n          iVar12 = 0xd;\n          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }\n          local_c4 = *(code **)(param_1 + 0x5c);\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = FUN_0004ce60 + unaff_EBP;\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" ({ "{") (labeled_statement "LAB_0002c92b:\n          pbVar9 = (byte *)dcgettext();" (statement_identifier "LAB_0002c92b") (: ":") (expression_statement "pbVar9 = (byte *)dcgettext();" (assignment_expression "pbVar9 = (byte *)dcgettext()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)dcgettext()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "iVar12 = 0x16;" (assignment_expression "iVar12 = 0x16" (identifier "iVar12") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" (identifier "bVar25") (= "=") (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&stack0xffffff24" (& "&") (identifier "stack0xffffff24")))) (; ";")) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" (identifier "bVar27") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0xcc" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xcc")))) (; ";")) (expression_statement "pbVar16 = (byte *)(unaff_EBP + 0x4ce73);" (assignment_expression "pbVar16 = (byte *)(unaff_EBP + 0x4ce73)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)(unaff_EBP + 0x4ce73)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4ce73)" (( "(") (binary_expression "unaff_EBP + 0x4ce73" (identifier "unaff_EBP") (+ "+") (number_literal "0x4ce73")) () ")")))) (; ";")) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" (do "do") (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar9 < *pbVar16;" (assignment_expression "bVar25 = *pbVar9 < *pbVar16" (identifier "bVar25") (= "=") (binary_expression "*pbVar9 < *pbVar16" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "bVar27 = *pbVar9 == *pbVar16;" (assignment_expression "bVar27 = *pbVar9 == *pbVar16" (identifier "bVar27") (= "=") (binary_expression "*pbVar9 == *pbVar16" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar28 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar28 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_1 + 100)" (* "*") (cast_expression "(uint *)(param_1 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            goto LAB_0002bd4e;\n          }" ({ "{") (if_statement "if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }\n            else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" (if "if") (parenthesized_expression "((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4))" (( "(") (binary_expression "(uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)" (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(uint *)(param_1 + 0x68) <= *local_a4)" (( "(") (binary_expression "*(uint *)(param_1 + 0x68) <= *local_a4" (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (<= "<=") (pointer_expression "*local_a4" (* "*") (identifier "local_a4"))) () ")"))) () ")")) (compound_statement "{\n              local_c4 = (code *)dcgettext();\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" ({ "{") (expression_statement "local_c4 = (code *)dcgettext();" (assignment_expression "local_c4 = (code *)dcgettext()" (identifier "local_c4") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" (identifier "puVar13") (= "=") (pointer_expression "*(uint **)(param_1 + 0x5c)" (* "*") (cast_expression "(uint **)(param_1 + 0x5c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" (else "else") (compound_statement "{\n              local_c4 = (code *)(*local_a4 + uVar15);\n              puVar13 = *(uint **)(param_1 + 0x5c);\n            }" ({ "{") (expression_statement "local_c4 = (code *)(*local_a4 + uVar15);" (assignment_expression "local_c4 = (code *)(*local_a4 + uVar15)" (identifier "local_c4") (= "=") (cast_expression "(code *)(*local_a4 + uVar15)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_a4 + uVar15)" (( "(") (binary_expression "*local_a4 + uVar15" (pointer_expression "*local_a4" (* "*") (identifier "local_a4")) (+ "+") (identifier "uVar15")) () ")")))) (; ";")) (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" (identifier "puVar13") (= "=") (pointer_expression "*(uint **)(param_1 + 0x5c)" (* "*") (cast_expression "(uint **)(param_1 + 0x5c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (} "}")))) (goto_statement "goto LAB_0002bd4e;" (goto "goto") (statement_identifier "LAB_0002bd4e") (; ";")) (} "}"))) (if_statement "if (uVar15 != 0) {\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar18 = *local_a4;\n            goto LAB_0002c5fe;\n          }" ({ "{") (expression_statement "uVar18 = *local_a4;" (assignment_expression "uVar18 = *local_a4" (identifier "uVar18") (= "=") (pointer_expression "*local_a4" (* "*") (identifier "local_a4"))) (; ";")) (goto_statement "goto LAB_0002c5fe;" (goto "goto") (statement_identifier "LAB_0002c5fe") (; ";")) (} "}"))) (labeled_statement "LAB_0002c9ae:\n          pbVar9 = (byte *)dcgettext();" (statement_identifier "LAB_0002c9ae") (: ":") (expression_statement "pbVar9 = (byte *)dcgettext();" (assignment_expression "pbVar9 = (byte *)dcgettext()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)dcgettext()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "iVar12 = 0xd;" (assignment_expression "iVar12 = 0xd" (identifier "iVar12") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" (identifier "bVar25") (= "=") (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&stack0xffffff24" (& "&") (identifier "stack0xffffff24")))) (; ";")) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" (identifier "bVar27") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0xcc" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xcc")))) (; ";")) (expression_statement "pbVar16 = (byte *)(unaff_EBP + 0x4cea2);" (assignment_expression "pbVar16 = (byte *)(unaff_EBP + 0x4cea2)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)(unaff_EBP + 0x4cea2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4cea2)" (( "(") (binary_expression "unaff_EBP + 0x4cea2" (identifier "unaff_EBP") (+ "+") (number_literal "0x4cea2")) () ")")))) (; ";")) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" (do "do") (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = *pbVar9 < *pbVar16;\n            bVar27 = *pbVar9 == *pbVar16;\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar9 < *pbVar16;" (assignment_expression "bVar25 = *pbVar9 < *pbVar16" (identifier "bVar25") (= "=") (binary_expression "*pbVar9 < *pbVar16" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "bVar27 = *pbVar9 == *pbVar16;" (assignment_expression "bVar27 = *pbVar9 == *pbVar16" (identifier "bVar27") (= "=") (binary_expression "*pbVar9 == *pbVar16" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar28 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar28 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }\n          else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }\nLAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);\n          }" ({ "{") (if_statement "if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {\n              pbVar9 = (byte *)dcgettext();\n            }\n            else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4))" (( "(") (binary_expression "(*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)" (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(uint *)(param_1 + 0x68) <= *local_a4)" (( "(") (binary_expression "*(uint *)(param_1 + 0x68) <= *local_a4" (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (<= "<=") (pointer_expression "*local_a4" (* "*") (identifier "local_a4"))) () ")"))) () ")")) (compound_statement "{\n              pbVar9 = (byte *)dcgettext();\n            }" ({ "{") (expression_statement "pbVar9 = (byte *)dcgettext();" (assignment_expression "pbVar9 = (byte *)dcgettext()" (identifier "pbVar9") (= "=") (cast_expression "(byte *)dcgettext()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }" (else "else") (compound_statement "{\n              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));\n            }" ({ "{") (expression_statement "pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));" (assignment_expression "pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100))" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(*local_a4 + *(int *)(param_1 + 100))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_a4 + *(int *)(param_1 + 100))" (( "(") (binary_expression "*local_a4 + *(int *)(param_1 + 100)" (pointer_expression "*local_a4" (* "*") (identifier "local_a4")) (+ "+") (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")"))))) () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_0002ca17:\n            local_b4 = (code *)(pbVar9 + 0xd);" (statement_identifier "LAB_0002ca17") (: ":") (expression_statement "local_b4 = (code *)(pbVar9 + 0xd);" (assignment_expression "local_b4 = (code *)(pbVar9 + 0xd)" (identifier "local_b4") (= "=") (cast_expression "(code *)(pbVar9 + 0xd)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar9 + 0xd)" (( "(") (binary_expression "pbVar9 + 0xd" (identifier "pbVar9") (+ "+") (number_literal "0xd")) () ")")))) (; ";"))) (} "}")) (else_clause "else {\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }" (else "else") (compound_statement "{\nLAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);\n          }" ({ "{") (labeled_statement "LAB_0002c62d:\n            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);" (statement_identifier "LAB_0002c62d") (: ":") (expression_statement "local_b4 = (code *)(&UNK_00050218 + unaff_EBP);" (assignment_expression "local_b4 = (code *)(&UNK_00050218 + unaff_EBP)" (identifier "local_b4") (= "=") (cast_expression "(code *)(&UNK_00050218 + unaff_EBP)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_00050218 + unaff_EBP)" (( "(") (binary_expression "&UNK_00050218 + unaff_EBP" (pointer_expression "&UNK_00050218" (& "&") (identifier "UNK_00050218")) (+ "+") (identifier "unaff_EBP")) () ")")))) (; ";"))) (} "}")))) (expression_statement "local_c4 = *(code **)(param_1 + 0x5c);" (assignment_expression "local_c4 = *(code **)(param_1 + 0x5c)" (identifier "local_c4") (= "=") (pointer_expression "*(code **)(param_1 + 0x5c)" (* "*") (cast_expression "(code **)(param_1 + 0x5c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" (* "*") (cast_expression "(int *)(param_1 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002bc78;" (goto "goto") (statement_identifier "LAB_0002bc78") (; ";"))) (expression_statement "local_bc = FUN_0004ce60 + unaff_EBP;" (assignment_expression "local_bc = FUN_0004ce60 + unaff_EBP" (identifier "local_bc") (= "=") (binary_expression "FUN_0004ce60 + unaff_EBP" (identifier "FUN_0004ce60") (+ "+") (identifier "unaff_EBP"))) (; ";")) (expression_statement "local_c0 = (int *)0x0;" (assignment_expression "local_c0 = (int *)0x0" (identifier "local_c0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_ac = (code *)(unaff_EBP + 0x4b0b1);" (assignment_expression "local_ac = (code *)(unaff_EBP + 0x4b0b1)" (identifier "local_ac") (= "=") (cast_expression "(code *)(unaff_EBP + 0x4b0b1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4b0b1)" (( "(") (binary_expression "unaff_EBP + 0x4b0b1" (identifier "unaff_EBP") (+ "+") (number_literal "0x4b0b1")) () ")")))) (; ";")) (expression_statement "local_9c = (void *)(unaff_EBP + 0x4b727);" (assignment_expression "local_9c = (void *)(unaff_EBP + 0x4b727)" (identifier "local_9c") (= "=") (cast_expression "(void *)(unaff_EBP + 0x4b727)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4b727)" (( "(") (binary_expression "unaff_EBP + 0x4b727" (identifier "unaff_EBP") (+ "+") (number_literal "0x4b727")) () ")")))) (; ";")) (do_statement "do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);" (do "do") (compound_statement "{\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          }" ({ "{") (if_statement "if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(local_c4 == (code *)0x0)" (( "(") (binary_expression "local_c4 == (code *)0x0" (identifier "local_c4") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x12;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }\n            }" ({ "{") (expression_statement "uVar24 = auStack_cc < (undefined1 *)0x4;" (assignment_expression "uVar24 = auStack_cc < (undefined1 *)0x4" (identifier "uVar24") (= "=") (binary_expression "auStack_cc < (undefined1 *)0x4" (identifier "auStack_cc") (< "<") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "uVar26 = &stack0x00000000 == (undefined1 *)0xd0;" (assignment_expression "uVar26 = &stack0x00000000 == (undefined1 *)0xd0" (identifier "uVar26") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0xd0" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0xd0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xd0")))) (; ";")) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4b720);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4b720)" (identifier "local_a0") (= "=") (cast_expression "(char *)(unaff_EBP + 0x4b720)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4b720)" (( "(") (binary_expression "unaff_EBP + 0x4b720" (identifier "unaff_EBP") (+ "+") (number_literal "0x4b720")) () ")")))) (; ";")) (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar12 = 0x12;" (assignment_expression "iVar12 = 0x12" (identifier "iVar12") (= "=") (number_literal "0x12")) (; ";")) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" (identifier "pcVar17") (= "=") (identifier "local_bc")) (; ";")) (do_statement "do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);" (do "do") (compound_statement "{\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar24 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "uVar24 = (byte)*pcVar6 < (byte)*pcVar17" (identifier "uVar24") (= "=") (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar6")) (< "<") (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar17")))) (; ";")) (expression_statement "uVar26 = *pcVar6 == *pcVar17;" (assignment_expression "uVar26 = *pcVar6 == *pcVar17" (identifier "uVar26") (= "=") (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" (identifier "pcVar17") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar26)" (( "(") (cast_expression "(bool)uVar26" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar26")) () ")")) (; ";")) (if_statement "if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }" (if "if") (parenthesized_expression "((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24)" (( "(") (binary_expression "(!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar26)" (( "(") (binary_expression "!(bool)uVar24 && !(bool)uVar26" (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) (&& "&&") (unary_expression "!(bool)uVar26" (! "!") (cast_expression "(bool)uVar26" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar26")))) () ")")) (== "==") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) () ")")) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002c699;\n              }" ({ "{") (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (goto_statement "goto LAB_0002c699;" (goto "goto") (statement_identifier "LAB_0002c699") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" (else "else") (compound_statement "{\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" ({ "{") (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_1 + 100)" (* "*") (cast_expression "(uint *)(param_1 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" (if "if") (parenthesized_expression "((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 )" (( "(") (binary_expression "(uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" (( "(") (comma_expression "uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18" (assignment_expression "uVar18 = *(uint *)local_c4" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)local_c4" (* "*") (cast_expression "(uint *)local_c4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_c4")))) (, ",") (binary_expression "*(uint *)(param_1 + 0x68) <= uVar18" (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (<= "<=") (identifier "uVar18"))) () ")"))) () ")")) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x12;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }\n              }" ({ "{") (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" (identifier "bVar25") (= "=") (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&stack0xffffff24" (& "&") (identifier "stack0xffffff24")))) (; ";")) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" (identifier "bVar27") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0xcc" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xcc")))) (; ";")) (expression_statement "iVar12 = 0x12;" (assignment_expression "iVar12 = 0x12" (identifier "iVar12") (= "=") (number_literal "0x12")) (; ";")) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" (identifier "pcVar17") (= "=") (identifier "local_bc")) (; ";")) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" (do "do") (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "bVar25 = (byte)*pcVar6 < (byte)*pcVar17" (identifier "bVar25") (= "=") (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar6")) (< "<") (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar17")))) (; ";")) (expression_statement "bVar27 = *pcVar6 == *pcVar17;" (assignment_expression "bVar27 = *pcVar6 == *pcVar17" (identifier "bVar27") (= "=") (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" (identifier "pcVar17") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002c699;\n                }" ({ "{") (if_statement "if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" ({ "{") (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" (else "else") (if_statement "if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" (if "if") (parenthesized_expression "(*(uint *)local_c4 < *(uint *)(param_1 + 0x68))" (( "(") (binary_expression "*(uint *)local_c4 < *(uint *)(param_1 + 0x68)" (pointer_expression "*(uint *)local_c4" (* "*") (cast_expression "(uint *)local_c4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_c4"))) (< "<") (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (compound_statement "{\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }" ({ "{") (expression_statement "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);" (assignment_expression "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 100) + *(uint *)local_c4)" (( "(") (binary_expression "*(int *)(param_1 + 100) + *(uint *)local_c4" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (+ "+") (pointer_expression "*(uint *)local_c4" (* "*") (cast_expression "(uint *)local_c4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_c4")))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    pcVar6 = (code *)dcgettext();\n                  }" (else "else") (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" ({ "{") (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))))) (goto_statement "goto LAB_0002c699;" (goto "goto") (statement_identifier "LAB_0002c699") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" (else "else") (compound_statement "{\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x12;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" ({ "{") (expression_statement "bVar25 = CARRY4(uVar15,uVar18);" (assignment_expression "bVar25 = CARRY4(uVar15,uVar18)" (identifier "bVar25") (= "=") (call_expression "CARRY4(uVar15,uVar18)" (identifier "CARRY4") (argument_list "(uVar15,uVar18)" (( "(") (identifier "uVar15") (, ",") (identifier "uVar18") () ")")))) (; ";")) (expression_statement "pcVar6 = (code *)(uVar15 + uVar18);" (assignment_expression "pcVar6 = (code *)(uVar15 + uVar18)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(uVar15 + uVar18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar15 + uVar18)" (( "(") (binary_expression "uVar15 + uVar18" (identifier "uVar15") (+ "+") (identifier "uVar18")) () ")")))) (; ";")) (expression_statement "bVar27 = pcVar6 == (code *)0x0;" (assignment_expression "bVar27 = pcVar6 == (code *)0x0" (identifier "bVar27") (= "=") (binary_expression "pcVar6 == (code *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "iVar12 = 0x12;" (assignment_expression "iVar12 = 0x12" (identifier "iVar12") (= "=") (number_literal "0x12")) (; ";")) (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" (identifier "pcVar17") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "pcVar11 = local_bc;" (assignment_expression "pcVar11 = local_bc" (identifier "pcVar11") (= "=") (identifier "local_bc")) (; ";")) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" (do "do") (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar25 = (byte)*pcVar17 < (byte)*pcVar11" (identifier "bVar25") (= "=") (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar17")) (< "<") (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar11")))) (; ";")) (expression_statement "bVar27 = *pcVar17 == *pcVar11;" (assignment_expression "bVar27 = *pcVar17 == *pcVar11" (identifier "bVar27") (= "=") (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (== "==") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")))) (; ";")) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" (identifier "pcVar17") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\nLAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" ({ "{") (labeled_statement "LAB_0002c699:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);" (statement_identifier "LAB_0002c699") (: ":") (expression_statement "iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);" (assignment_expression "iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4)" (identifier "iVar12") (= "=") (call_expression "strcmp((char *)(pcVar6 + 0x12),(char *)local_b4)" (identifier "strcmp") (argument_list "((char *)(pcVar6 + 0x12),(char *)local_b4)" (( "(") (cast_expression "(char *)(pcVar6 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x12)" (( "(") (binary_expression "pcVar6 + 0x12" (identifier "pcVar6") (+ "+") (number_literal "0x12")) () ")"))) (, ",") (cast_expression "(char *)local_b4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b4")) () ")")))) (; ";"))) (if_statement "if (iVar12 == 0) goto LAB_0002be90;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002be90;" (goto "goto") (statement_identifier "LAB_0002be90") (; ";"))) (} "}"))) (} "}")))) (} "}")))) (expression_statement "local_c0 = (int *)((int)local_c0 + 1);" (assignment_expression "local_c0 = (int *)((int)local_c0 + 1)" (identifier "local_c0") (= "=") (cast_expression "(int *)((int)local_c0 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c0 + 1)" (( "(") (binary_expression "(int)local_c0 + 1" (cast_expression "(int)local_c0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c0")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_c4 = (code *)((int)local_c4 + 0x48);" (assignment_expression "local_c4 = (code *)((int)local_c4 + 0x48)" (identifier "local_c4") (= "=") (cast_expression "(code *)((int)local_c4 + 0x48)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 + 0x48)" (( "(") (binary_expression "(int)local_c4 + 0x48" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x54)" (* "*") (cast_expression "(int **)(param_1 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_c0 < piVar8)" (( "(") (binary_expression "local_c0 < piVar8" (identifier "local_c0") (< "<") (identifier "piVar8")) () ")")) (; ";")) (} "}")) (else_clause "else {\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" (else "else") (compound_statement "{\n          uVar18 = *local_a4;\n          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);\n          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);\n          if (!bVar25) goto LAB_0002c92b;\n          local_c4 = (code *)(uVar15 + uVar18);\n          iVar12 = 0x16;\n          puVar14 = (uint *)local_c4;\n          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }\nLAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);\n          local_c4 = (code *)puVar13;\n          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;\n          local_bc = (code *)(unaff_EBP + 0x4ce8a);\n          local_c0 = (int *)0x0;\n          local_ac = (code *)(unaff_EBP + 0x4b0b1);\n          local_9c = (void *)(unaff_EBP + 0x4b727);\n          do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);\n        }" ({ "{") (expression_statement "uVar18 = *local_a4;" (assignment_expression "uVar18 = *local_a4" (identifier "uVar18") (= "=") (pointer_expression "*local_a4" (* "*") (identifier "local_a4"))) (; ";")) (expression_statement "bVar25 = uVar18 < *(uint *)(param_1 + 0x68);" (assignment_expression "bVar25 = uVar18 < *(uint *)(param_1 + 0x68)" (identifier "bVar25") (= "=") (binary_expression "uVar18 < *(uint *)(param_1 + 0x68)" (identifier "uVar18") (< "<") (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))))) (; ";")) (expression_statement "bVar27 = uVar18 == *(uint *)(param_1 + 0x68);" (assignment_expression "bVar27 = uVar18 == *(uint *)(param_1 + 0x68)" (identifier "bVar27") (= "=") (binary_expression "uVar18 == *(uint *)(param_1 + 0x68)" (identifier "uVar18") (== "==") (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))))) (; ";")) (if_statement "if (!bVar25) goto LAB_0002c92b;" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_0002c92b;" (goto "goto") (statement_identifier "LAB_0002c92b") (; ";"))) (expression_statement "local_c4 = (code *)(uVar15 + uVar18);" (assignment_expression "local_c4 = (code *)(uVar15 + uVar18)" (identifier "local_c4") (= "=") (cast_expression "(code *)(uVar15 + uVar18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar15 + uVar18)" (( "(") (binary_expression "uVar15 + uVar18" (identifier "uVar15") (+ "+") (identifier "uVar18")) () ")")))) (; ";")) (expression_statement "iVar12 = 0x16;" (assignment_expression "iVar12 = 0x16" (identifier "iVar12") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "puVar14 = (uint *)local_c4;" (assignment_expression "puVar14 = (uint *)local_c4" (identifier "puVar14") (= "=") (cast_expression "(uint *)local_c4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_c4"))) (; ";")) (expression_statement "pbVar9 = (byte *)(unaff_EBP + 0x4ce73);" (assignment_expression "pbVar9 = (byte *)(unaff_EBP + 0x4ce73)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(unaff_EBP + 0x4ce73)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4ce73)" (( "(") (binary_expression "unaff_EBP + 0x4ce73" (identifier "unaff_EBP") (+ "+") (number_literal "0x4ce73")) () ")")))) (; ";")) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" (do "do") (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*puVar14 < *pbVar9;\n            bVar27 = (byte)*puVar14 == *pbVar9;\n            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);\n            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = (byte)*puVar14 < *pbVar9;" (assignment_expression "bVar25 = (byte)*puVar14 < *pbVar9" (identifier "bVar25") (= "=") (binary_expression "(byte)*puVar14 < *pbVar9" (binary_expression "(byte)*puVar14" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar14")) (< "<") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "bVar27 = (byte)*puVar14 == *pbVar9;" (assignment_expression "bVar27 = (byte)*puVar14 == *pbVar9" (identifier "bVar27") (= "=") (binary_expression "(byte)*puVar14 == *pbVar9" (binary_expression "(byte)*puVar14" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "puVar14")) (== "==") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")))) (; ";")) (expression_statement "puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);" (assignment_expression "puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1)" (identifier "puVar14") (= "=") (cast_expression "(uint *)((int)puVar14 + (uint)bVar28 * -2 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar14 + (uint)bVar28 * -2 + 1)" (( "(") (binary_expression "(int)puVar14 + (uint)bVar28 * -2 + 1" (binary_expression "(int)puVar14 + (uint)bVar28 * -2" (cast_expression "(int)puVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar14")) (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar28 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar27) != bVar25) {\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) != bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) != bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (!= "!=") (identifier "bVar25")) () ")")) (compound_statement "{\nLAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;\n            bVar25 = CARRY4(uVar18,uVar15);\n            pbVar9 = (byte *)(uVar18 + uVar15);\n            bVar27 = pbVar9 == (byte *)0x0;\n            iVar12 = 0xd;\n            pbVar16 = pbVar9;\n            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);\n            do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);\n            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;\n            goto LAB_0002c62d;\n          }" ({ "{") (labeled_statement "LAB_0002c5fe:\n            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;" (statement_identifier "LAB_0002c5fe") (: ":") (if_statement "if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x68) <= uVar18)" (( "(") (binary_expression "*(uint *)(param_1 + 0x68) <= uVar18" (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (<= "<=") (identifier "uVar18")) () ")")) (goto_statement "goto LAB_0002c9ae;" (goto "goto") (statement_identifier "LAB_0002c9ae") (; ";")))) (expression_statement "bVar25 = CARRY4(uVar18,uVar15);" (assignment_expression "bVar25 = CARRY4(uVar18,uVar15)" (identifier "bVar25") (= "=") (call_expression "CARRY4(uVar18,uVar15)" (identifier "CARRY4") (argument_list "(uVar18,uVar15)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar15") () ")")))) (; ";")) (expression_statement "pbVar9 = (byte *)(uVar18 + uVar15);" (assignment_expression "pbVar9 = (byte *)(uVar18 + uVar15)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(uVar18 + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar18 + uVar15)" (( "(") (binary_expression "uVar18 + uVar15" (identifier "uVar18") (+ "+") (identifier "uVar15")) () ")")))) (; ";")) (expression_statement "bVar27 = pbVar9 == (byte *)0x0;" (assignment_expression "bVar27 = pbVar9 == (byte *)0x0" (identifier "bVar27") (= "=") (binary_expression "pbVar9 == (byte *)0x0" (identifier "pbVar9") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "iVar12 = 0xd;" (assignment_expression "iVar12 = 0xd" (identifier "iVar12") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pbVar16 = pbVar9;" (assignment_expression "pbVar16 = pbVar9" (identifier "pbVar16") (= "=") (identifier "pbVar9")) (; ";")) (expression_statement "pbVar23 = (byte *)(unaff_EBP + 0x4cea2);" (assignment_expression "pbVar23 = (byte *)(unaff_EBP + 0x4cea2)" (identifier "pbVar23") (= "=") (cast_expression "(byte *)(unaff_EBP + 0x4cea2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4cea2)" (( "(") (binary_expression "unaff_EBP + 0x4cea2" (identifier "unaff_EBP") (+ "+") (number_literal "0x4cea2")) () ")")))) (; ";")) (do_statement "do {\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            } while (bVar27);" (do "do") (compound_statement "{\n              if (iVar12 == 0) break;\n              iVar12 = iVar12 + -1;\n              bVar25 = *pbVar16 < *pbVar23;\n              bVar27 = *pbVar16 == *pbVar23;\n              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;\n              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar16 < *pbVar23;" (assignment_expression "bVar25 = *pbVar16 < *pbVar23" (identifier "bVar25") (= "=") (binary_expression "*pbVar16 < *pbVar23" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (< "<") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "bVar27 = *pbVar16 == *pbVar23;" (assignment_expression "bVar27 = *pbVar16 == *pbVar23" (identifier "bVar27") (= "=") (binary_expression "*pbVar16 == *pbVar23" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (== "==") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar28 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (uint)bVar28 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar28 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_0002ca17;" (goto "goto") (statement_identifier "LAB_0002ca17") (; ";"))) (goto_statement "goto LAB_0002c62d;" (goto "goto") (statement_identifier "LAB_0002c62d") (; ";")) (} "}"))) (labeled_statement "LAB_0002bd4e:\n          local_b4 = (code *)((int)local_c4 + 0x16);" (statement_identifier "LAB_0002bd4e") (: ":") (expression_statement "local_b4 = (code *)((int)local_c4 + 0x16);" (assignment_expression "local_b4 = (code *)((int)local_c4 + 0x16)" (identifier "local_b4") (= "=") (cast_expression "(code *)((int)local_c4 + 0x16)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 + 0x16)" (( "(") (binary_expression "(int)local_c4 + 0x16" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (number_literal "0x16")) () ")")))) (; ";"))) (expression_statement "local_c4 = (code *)puVar13;" (assignment_expression "local_c4 = (code *)puVar13" (identifier "local_c4") (= "=") (cast_expression "(code *)puVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x54) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x54) == 0" (pointer_expression "*(int *)(param_1 + 0x54)" (* "*") (cast_expression "(int *)(param_1 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002bc78;" (goto "goto") (statement_identifier "LAB_0002bc78") (; ";"))) (expression_statement "local_bc = (code *)(unaff_EBP + 0x4ce8a);" (assignment_expression "local_bc = (code *)(unaff_EBP + 0x4ce8a)" (identifier "local_bc") (= "=") (cast_expression "(code *)(unaff_EBP + 0x4ce8a)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4ce8a)" (( "(") (binary_expression "unaff_EBP + 0x4ce8a" (identifier "unaff_EBP") (+ "+") (number_literal "0x4ce8a")) () ")")))) (; ";")) (expression_statement "local_c0 = (int *)0x0;" (assignment_expression "local_c0 = (int *)0x0" (identifier "local_c0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_ac = (code *)(unaff_EBP + 0x4b0b1);" (assignment_expression "local_ac = (code *)(unaff_EBP + 0x4b0b1)" (identifier "local_ac") (= "=") (cast_expression "(code *)(unaff_EBP + 0x4b0b1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4b0b1)" (( "(") (binary_expression "unaff_EBP + 0x4b0b1" (identifier "unaff_EBP") (+ "+") (number_literal "0x4b0b1")) () ")")))) (; ";")) (expression_statement "local_9c = (void *)(unaff_EBP + 0x4b727);" (assignment_expression "local_9c = (void *)(unaff_EBP + 0x4b727)" (identifier "local_9c") (= "=") (cast_expression "(void *)(unaff_EBP + 0x4b727)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4b727)" (( "(") (binary_expression "unaff_EBP + 0x4b727" (identifier "unaff_EBP") (+ "+") (number_literal "0x4b727")) () ")")))) (; ";")) (do_statement "do {\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          } while (local_c0 < piVar8);" (do "do") (compound_statement "{\n            if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }\n            local_c0 = (int *)((int)local_c0 + 1);\n            local_c4 = (code *)((int)local_c4 + 0x48);\n            piVar8 = *(int **)(param_1 + 0x54);\n          }" ({ "{") (if_statement "if (local_c4 == (code *)0x0) {\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }\n            else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(local_c4 == (code *)0x0)" (( "(") (binary_expression "local_c4 == (code *)0x0" (identifier "local_c4") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar24 = auStack_cc < (undefined1 *)0x4;\n              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;\n              local_a0 = (char *)(unaff_EBP + 0x4b720);\n              pcVar6 = (code *)dcgettext();\n              iVar12 = 0x17;\n              pcVar17 = local_bc;\n              do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);\n              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }\n            }" ({ "{") (expression_statement "uVar24 = auStack_cc < (undefined1 *)0x4;" (assignment_expression "uVar24 = auStack_cc < (undefined1 *)0x4" (identifier "uVar24") (= "=") (binary_expression "auStack_cc < (undefined1 *)0x4" (identifier "auStack_cc") (< "<") (cast_expression "(undefined1 *)0x4" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "uVar26 = &stack0x00000000 == (undefined1 *)0xd0;" (assignment_expression "uVar26 = &stack0x00000000 == (undefined1 *)0xd0" (identifier "uVar26") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0xd0" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0xd0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xd0")))) (; ";")) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4b720);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4b720)" (identifier "local_a0") (= "=") (cast_expression "(char *)(unaff_EBP + 0x4b720)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4b720)" (( "(") (binary_expression "unaff_EBP + 0x4b720" (identifier "unaff_EBP") (+ "+") (number_literal "0x4b720")) () ")")))) (; ";")) (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar12 = 0x17;" (assignment_expression "iVar12 = 0x17" (identifier "iVar12") (= "=") (number_literal "0x17")) (; ";")) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" (identifier "pcVar17") (= "=") (identifier "local_bc")) (; ";")) (do_statement "do {\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              } while ((bool)uVar26);" (do "do") (compound_statement "{\n                if (iVar12 == 0) break;\n                iVar12 = iVar12 + -1;\n                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;\n                uVar26 = *pcVar6 == *pcVar17;\n                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar24 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "uVar24 = (byte)*pcVar6 < (byte)*pcVar17" (identifier "uVar24") (= "=") (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar6")) (< "<") (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar17")))) (; ";")) (expression_statement "uVar26 = *pcVar6 == *pcVar17;" (assignment_expression "uVar26 = *pcVar6 == *pcVar17" (identifier "uVar26") (= "=") (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" (identifier "pcVar17") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar26)" (( "(") (cast_expression "(bool)uVar26" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar26")) () ")")) (; ";")) (if_statement "if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }" (if "if") (parenthesized_expression "((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24)" (( "(") (binary_expression "(!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24" (parenthesized_expression "(!(bool)uVar24 && !(bool)uVar26)" (( "(") (binary_expression "!(bool)uVar24 && !(bool)uVar26" (unary_expression "!(bool)uVar24" (! "!") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) (&& "&&") (unary_expression "!(bool)uVar26" (! "!") (cast_expression "(bool)uVar26" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar26")))) () ")")) (== "==") (cast_expression "(bool)uVar24" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar24"))) () ")")) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                goto LAB_0002bdb1;\n              }" ({ "{") (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (goto_statement "goto LAB_0002bdb1;" (goto "goto") (statement_identifier "LAB_0002bdb1") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" (else "else") (compound_statement "{\n              uVar15 = *(uint *)(param_1 + 100);\n              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }\n            }" ({ "{") (expression_statement "uVar15 = *(uint *)(param_1 + 100);" (assignment_expression "uVar15 = *(uint *)(param_1 + 100)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_1 + 100)" (* "*") (cast_expression "(uint *)(param_1 + 100)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 ) {\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }\n              else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" (if "if") (parenthesized_expression "((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)\n                 )" (( "(") (binary_expression "(uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)" (( "(") (comma_expression "uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18" (assignment_expression "uVar18 = *(uint *)local_c4" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)local_c4" (* "*") (cast_expression "(uint *)local_c4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_c4")))) (, ",") (binary_expression "*(uint *)(param_1 + 0x68) <= uVar18" (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))) (<= "<=") (identifier "uVar18"))) () ")"))) () ")")) (compound_statement "{\n                pcVar6 = (code *)dcgettext();\n                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;\n                iVar12 = 0x17;\n                pcVar17 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }\n              }" ({ "{") (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" (identifier "bVar25") (= "=") (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&stack0xffffff24" (& "&") (identifier "stack0xffffff24")))) (; ";")) (expression_statement "bVar27 = &stack0x00000000 == (undefined1 *)0xcc;" (assignment_expression "bVar27 = &stack0x00000000 == (undefined1 *)0xcc" (identifier "bVar27") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0xcc" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0xcc" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xcc")))) (; ";")) (expression_statement "iVar12 = 0x17;" (assignment_expression "iVar12 = 0x17" (identifier "iVar12") (= "=") (number_literal "0x17")) (; ";")) (expression_statement "pcVar17 = local_bc;" (assignment_expression "pcVar17 = local_bc" (identifier "pcVar17") (= "=") (identifier "local_bc")) (; ";")) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" (do "do") (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;\n                  bVar27 = *pcVar6 == *pcVar17;\n                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = (byte)*pcVar6 < (byte)*pcVar17;" (assignment_expression "bVar25 = (byte)*pcVar6 < (byte)*pcVar17" (identifier "bVar25") (= "=") (binary_expression "(byte)*pcVar6 < (byte)*pcVar17" (binary_expression "(byte)*pcVar6" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar6")) (< "<") (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar17")))) (; ";")) (expression_statement "bVar27 = *pcVar6 == *pcVar17;" (assignment_expression "bVar27 = *pcVar6 == *pcVar17" (identifier "bVar27") (= "=") (binary_expression "*pcVar6 == *pcVar17" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (== "==") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")))) (; ";")) (expression_statement "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar6 + (uint)bVar28 * -2" (identifier "pcVar6") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" (identifier "pcVar17") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n                  if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  goto LAB_0002bdb1;\n                }" ({ "{") (if_statement "if (*(int *)(param_1 + 100) == 0) {\n                    pcVar6 = (code *)dcgettext();\n                  }\n                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" ({ "{") (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" (else "else") (if_statement "if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }\n                  else {\n                    pcVar6 = (code *)dcgettext();\n                  }" (if "if") (parenthesized_expression "(*(uint *)local_c4 < *(uint *)(param_1 + 0x68))" (( "(") (binary_expression "*(uint *)local_c4 < *(uint *)(param_1 + 0x68)" (pointer_expression "*(uint *)local_c4" (* "*") (cast_expression "(uint *)local_c4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_c4"))) (< "<") (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (compound_statement "{\n                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);\n                  }" ({ "{") (expression_statement "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);" (assignment_expression "pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(*(int *)(param_1 + 100) + *(uint *)local_c4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 100) + *(uint *)local_c4)" (( "(") (binary_expression "*(int *)(param_1 + 100) + *(uint *)local_c4" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (+ "+") (pointer_expression "*(uint *)local_c4" (* "*") (cast_expression "(uint *)local_c4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_c4")))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    pcVar6 = (code *)dcgettext();\n                  }" (else "else") (compound_statement "{\n                    pcVar6 = (code *)dcgettext();\n                  }" ({ "{") (expression_statement "pcVar6 = (code *)dcgettext();" (assignment_expression "pcVar6 = (code *)dcgettext()" (identifier "pcVar6") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))))) (goto_statement "goto LAB_0002bdb1;" (goto "goto") (statement_identifier "LAB_0002bdb1") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" (else "else") (compound_statement "{\n                bVar25 = CARRY4(uVar15,uVar18);\n                pcVar6 = (code *)(uVar15 + uVar18);\n                bVar27 = pcVar6 == (code *)0x0;\n                iVar12 = 0x17;\n                pcVar17 = pcVar6;\n                pcVar11 = local_bc;\n                do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);\n                if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }\n              }" ({ "{") (expression_statement "bVar25 = CARRY4(uVar15,uVar18);" (assignment_expression "bVar25 = CARRY4(uVar15,uVar18)" (identifier "bVar25") (= "=") (call_expression "CARRY4(uVar15,uVar18)" (identifier "CARRY4") (argument_list "(uVar15,uVar18)" (( "(") (identifier "uVar15") (, ",") (identifier "uVar18") () ")")))) (; ";")) (expression_statement "pcVar6 = (code *)(uVar15 + uVar18);" (assignment_expression "pcVar6 = (code *)(uVar15 + uVar18)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(uVar15 + uVar18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar15 + uVar18)" (( "(") (binary_expression "uVar15 + uVar18" (identifier "uVar15") (+ "+") (identifier "uVar18")) () ")")))) (; ";")) (expression_statement "bVar27 = pcVar6 == (code *)0x0;" (assignment_expression "bVar27 = pcVar6 == (code *)0x0" (identifier "bVar27") (= "=") (binary_expression "pcVar6 == (code *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "iVar12 = 0x17;" (assignment_expression "iVar12 = 0x17" (identifier "iVar12") (= "=") (number_literal "0x17")) (; ";")) (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" (identifier "pcVar17") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "pcVar11 = local_bc;" (assignment_expression "pcVar11 = local_bc" (identifier "pcVar11") (= "=") (identifier "local_bc")) (; ";")) (do_statement "do {\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                } while (bVar27);" (do "do") (compound_statement "{\n                  if (iVar12 == 0) break;\n                  iVar12 = iVar12 + -1;\n                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n                  bVar27 = *pcVar17 == *pcVar11;\n                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar25 = (byte)*pcVar17 < (byte)*pcVar11" (identifier "bVar25") (= "=") (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar17")) (< "<") (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar11")))) (; ";")) (expression_statement "bVar27 = *pcVar17 == *pcVar11;" (assignment_expression "bVar27 = *pcVar17 == *pcVar11" (identifier "bVar27") (= "=") (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (== "==") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")))) (; ";")) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" (identifier "pcVar17") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) {\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\nLAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);\n                  if (iVar12 == 0) goto LAB_0002be90;\n                }" ({ "{") (labeled_statement "LAB_0002bdb1:\n                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);" (statement_identifier "LAB_0002bdb1") (: ":") (expression_statement "iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);" (assignment_expression "iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4)" (identifier "iVar12") (= "=") (call_expression "strcmp((char *)(pcVar6 + 0x17),(char *)local_b4)" (identifier "strcmp") (argument_list "((char *)(pcVar6 + 0x17),(char *)local_b4)" (( "(") (cast_expression "(char *)(pcVar6 + 0x17)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x17)" (( "(") (binary_expression "pcVar6 + 0x17" (identifier "pcVar6") (+ "+") (number_literal "0x17")) () ")"))) (, ",") (cast_expression "(char *)local_b4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_b4")) () ")")))) (; ";"))) (if_statement "if (iVar12 == 0) goto LAB_0002be90;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002be90;" (goto "goto") (statement_identifier "LAB_0002be90") (; ";"))) (} "}"))) (} "}")))) (} "}")))) (expression_statement "local_c0 = (int *)((int)local_c0 + 1);" (assignment_expression "local_c0 = (int *)((int)local_c0 + 1)" (identifier "local_c0") (= "=") (cast_expression "(int *)((int)local_c0 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c0 + 1)" (( "(") (binary_expression "(int)local_c0 + 1" (cast_expression "(int)local_c0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c0")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_c4 = (code *)((int)local_c4 + 0x48);" (assignment_expression "local_c4 = (code *)((int)local_c4 + 0x48)" (identifier "local_c4") (= "=") (cast_expression "(code *)((int)local_c4 + 0x48)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 + 0x48)" (( "(") (binary_expression "(int)local_c4 + 0x48" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x54)" (* "*") (cast_expression "(int **)(param_1 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_c0 < piVar8)" (( "(") (binary_expression "local_c0 < piVar8" (identifier "local_c0") (< "<") (identifier "piVar8")) () ")")) (; ";")) (} "}")))) (goto_statement "goto LAB_0002be9a;" (goto "goto") (statement_identifier "LAB_0002be9a") (; ";")) (} "}"))) (if_statement "if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }" (if "if") (parenthesized_expression "(((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0))" (( "(") (binary_expression "((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)" (parenthesized_expression "((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0))" (( "(") (binary_expression "(*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&\n          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0)" (( "(") (binary_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0" (pointer_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP)" (* "*") (cast_expression "(int *)(&DAT_0008a8d7 + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0008a8d7 + unaff_EBP)" (( "(") (binary_expression "&DAT_0008a8d7 + unaff_EBP" (pointer_expression "&DAT_0008a8d7" (& "&") (identifier "DAT_0008a8d7")) (+ "+") (identifier "unaff_EBP")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0)" (( "(") (comma_expression "puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),\n          puVar2 != (undefined4 *)0x0" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" (* "*") (cast_expression "(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4)" (( "(") (binary_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4" (pointer_expression "*(int *)(&DAT_0008a8d7 + unaff_EBP)" (* "*") (cast_expression "(int *)(&DAT_0008a8d7 + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0008a8d7 + unaff_EBP)" (( "(") (binary_expression "&DAT_0008a8d7 + unaff_EBP" (pointer_expression "&DAT_0008a8d7" (& "&") (identifier "DAT_0008a8d7")) (+ "+") (identifier "unaff_EBP")) () ")")))) (+ "+") (binary_expression "(int)piVar20 * 4" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)" (( "(") (comma_expression "pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0" (assignment_expression "pcVar6 = (code *)*puVar2" (identifier "pcVar6") (= "=") (cast_expression "(code *)*puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (, ",") (binary_expression "pcVar6 != (code *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n        local_bc = FUN_0004ce60 + unaff_EBP;\n        local_ac = (code *)(unaff_EBP + 0x4b0b1);\n        local_a0 = (char *)(unaff_EBP + 0x4b727);\n        do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );\n      }" ({ "{") (expression_statement "local_bc = FUN_0004ce60 + unaff_EBP;" (assignment_expression "local_bc = FUN_0004ce60 + unaff_EBP" (identifier "local_bc") (= "=") (binary_expression "FUN_0004ce60 + unaff_EBP" (identifier "FUN_0004ce60") (+ "+") (identifier "unaff_EBP"))) (; ";")) (expression_statement "local_ac = (code *)(unaff_EBP + 0x4b0b1);" (assignment_expression "local_ac = (code *)(unaff_EBP + 0x4b0b1)" (identifier "local_ac") (= "=") (cast_expression "(code *)(unaff_EBP + 0x4b0b1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4b0b1)" (( "(") (binary_expression "unaff_EBP + 0x4b0b1" (identifier "unaff_EBP") (+ "+") (number_literal "0x4b0b1")) () ")")))) (; ";")) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4b727);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4b727)" (identifier "local_a0") (= "=") (cast_expression "(char *)(unaff_EBP + 0x4b727)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4b727)" (( "(") (binary_expression "unaff_EBP + 0x4b727" (identifier "unaff_EBP") (+ "+") (number_literal "0x4b727")) () ")")))) (; ";")) (do_statement "do {\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        } while( true );" (do "do") (compound_statement "{\n          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);\n          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }\n          bVar27 = puVar5 == (undefined1 *)0x0;\n          iVar12 = 0x13;\n          pcVar11 = local_bc;\n          do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);\n          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;\n          pcVar6 = *(code **)pcVar6;\n          if (pcVar6 == (code *)0x0) break;\n          puVar13 = *(uint **)(param_1 + 0x5c);\n        }" ({ "{") (expression_statement "local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);" (assignment_expression "local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12)" (identifier "local_c4") (= "=") (cast_expression "(code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + *(uint *)(pcVar6 + 4) * 0x12)" (( "(") (binary_expression "puVar13 + *(uint *)(pcVar6 + 4) * 0x12" (identifier "puVar13") (+ "+") (binary_expression "*(uint *)(pcVar6 + 4) * 0x12" (pointer_expression "*(uint *)(pcVar6 + 4)" (* "*") (cast_expression "(uint *)(pcVar6 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")")))) (* "*") (number_literal "0x12"))) () ")")))) (; ";")) (if_statement "if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }\n          else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }" (if "if") (parenthesized_expression "((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0))" (( "(") (binary_expression "(local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)" (parenthesized_expression "(local_c4 == (code *)0x0)" (( "(") (binary_expression "local_c4 == (code *)0x0" (identifier "local_c4") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0002c8dc:\n            local_b4 = pcVar6;\n            pcVar17 = (code *)dcgettext();\n            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;\n            pcVar6 = local_b4;\n            puVar5 = auStack_cc;\n          }" ({ "{") (labeled_statement "LAB_0002c8dc:\n            local_b4 = pcVar6;" (statement_identifier "LAB_0002c8dc") (: ":") (expression_statement "local_b4 = pcVar6;" (assignment_expression "local_b4 = pcVar6" (identifier "local_b4") (= "=") (identifier "pcVar6")) (; ";"))) (expression_statement "pcVar17 = (code *)dcgettext();" (assignment_expression "pcVar17 = (code *)dcgettext()" (identifier "pcVar17") (= "=") (cast_expression "(code *)dcgettext()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;" (assignment_expression "bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24" (identifier "bVar25") (= "=") (binary_expression "(undefined1 *)0xffffffef < &stack0xffffff24" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&stack0xffffff24" (& "&") (identifier "stack0xffffff24")))) (; ";")) (expression_statement "pcVar6 = local_b4;" (assignment_expression "pcVar6 = local_b4" (identifier "pcVar6") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "puVar5 = auStack_cc;" (assignment_expression "puVar5 = auStack_cc" (identifier "puVar5") (= "=") (identifier "auStack_cc")) (; ";")) (} "}")) (else_clause "else {\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }" (else "else") (compound_statement "{\n            uVar15 = *(uint *)local_c4;\n            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);\n            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);\n            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));\n            if (!bVar25) goto LAB_0002c8dc;\n          }" ({ "{") (expression_statement "uVar15 = *(uint *)local_c4;" (assignment_expression "uVar15 = *(uint *)local_c4" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)local_c4" (* "*") (cast_expression "(uint *)local_c4" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_c4")))) (; ";")) (expression_statement "pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);" (assignment_expression "pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15)" (identifier "pcVar17") (= "=") (cast_expression "(code *)(*(int *)(param_1 + 100) + uVar15)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 100) + uVar15)" (( "(") (binary_expression "*(int *)(param_1 + 100) + uVar15" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (+ "+") (identifier "uVar15")) () ")")))) (; ";")) (expression_statement "bVar25 = uVar15 < *(uint *)(param_1 + 0x68);" (assignment_expression "bVar25 = uVar15 < *(uint *)(param_1 + 0x68)" (identifier "bVar25") (= "=") (binary_expression "uVar15 < *(uint *)(param_1 + 0x68)" (identifier "uVar15") (< "<") (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")")))))) (; ";")) (expression_statement "puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));" (assignment_expression "puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68))" (identifier "puVar5") (= "=") (cast_expression "(undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar15 - *(uint *)(param_1 + 0x68))" (( "(") (binary_expression "uVar15 - *(uint *)(param_1 + 0x68)" (identifier "uVar15") (- "-") (pointer_expression "*(uint *)(param_1 + 0x68)" (* "*") (cast_expression "(uint *)(param_1 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) () ")")))) (; ";")) (if_statement "if (!bVar25) goto LAB_0002c8dc;" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_0002c8dc;" (goto "goto") (statement_identifier "LAB_0002c8dc") (; ";"))) (} "}")))) (expression_statement "bVar27 = puVar5 == (undefined1 *)0x0;" (assignment_expression "bVar27 = puVar5 == (undefined1 *)0x0" (identifier "bVar27") (= "=") (binary_expression "puVar5 == (undefined1 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "iVar12 = 0x13;" (assignment_expression "iVar12 = 0x13" (identifier "iVar12") (= "=") (number_literal "0x13")) (; ";")) (expression_statement "pcVar11 = local_bc;" (assignment_expression "pcVar11 = local_bc" (identifier "pcVar11") (= "=") (identifier "local_bc")) (; ";")) (do_statement "do {\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          } while (bVar27);" (do "do") (compound_statement "{\n            if (iVar12 == 0) break;\n            iVar12 = iVar12 + -1;\n            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;\n            bVar27 = *pcVar17 == *pcVar11;\n            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar25 = (byte)*pcVar17 < (byte)*pcVar11" (identifier "bVar25") (= "=") (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar17")) (< "<") (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar11")))) (; ";")) (expression_statement "bVar27 = *pcVar17 == *pcVar11;" (assignment_expression "bVar27 = *pcVar17 == *pcVar11" (identifier "bVar27") (= "=") (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (== "==") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")))) (; ";")) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" (identifier "pcVar17") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar27)" (( "(") (identifier "bVar27") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;" (if "if") (parenthesized_expression "((!bVar25 && !bVar27) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar27) == bVar25" (parenthesized_expression "(!bVar25 && !bVar27)" (( "(") (binary_expression "!bVar25 && !bVar27" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar27" (! "!") (identifier "bVar27"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_0002be90;" (goto "goto") (statement_identifier "LAB_0002be90") (; ";"))) (expression_statement "pcVar6 = *(code **)pcVar6;" (assignment_expression "pcVar6 = *(code **)pcVar6" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)pcVar6" (* "*") (cast_expression "(code **)pcVar6" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar6")))) (; ";")) (if_statement "if (pcVar6 == (code *)0x0) break;" (if "if") (parenthesized_expression "(pcVar6 == (code *)0x0)" (( "(") (binary_expression "pcVar6 == (code *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar13 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar13 = *(uint **)(param_1 + 0x5c)" (identifier "puVar13") (= "=") (pointer_expression "*(uint **)(param_1 + 0x5c)" (* "*") (cast_expression "(uint **)(param_1 + 0x5c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_0002bc78;" (goto "goto") (statement_identifier "LAB_0002bc78") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" (identifier "printf") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (labeled_statement "LAB_0002c274:\n  if (local_34 != (int *)0x0) {\n    free(local_34);\n  }" (statement_identifier "LAB_0002c274") (: ":") (if_statement "if (local_34 != (int *)0x0) {\n    free(local_34);\n  }" (if "if") (parenthesized_expression "(local_34 != (int *)0x0)" (( "(") (binary_expression "local_34 != (int *)0x0" (identifier "local_34") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free(local_34);\n  }" ({ "{") (expression_statement "free(local_34);" (call_expression "free(local_34)" (identifier "free") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_24 != (void *)0x0) {\n    free(local_24);\n  }" (if "if") (parenthesized_expression "(local_24 != (void *)0x0)" (( "(") (binary_expression "local_24 != (void *)0x0" (identifier "local_24") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free(local_24);\n  }" ({ "{") (expression_statement "free(local_24);" (call_expression "free(local_24)" (identifier "free") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (} "}"))) (return_statement "return local_70;" (return "return") (identifier "local_70") (; ";")) (labeled_statement "LAB_0002be90:\n  piVar8 = *(int **)(param_1 + 0x54);" (statement_identifier "LAB_0002be90") (: ":") (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x54)" (* "*") (cast_expression "(int **)(param_1 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";"))) (labeled_statement "LAB_0002be9a:\n  pcVar6 = local_c4;" (statement_identifier "LAB_0002be9a") (: ":") (expression_statement "pcVar6 = local_c4;" (assignment_expression "pcVar6 = local_c4" (identifier "pcVar6") (= "=") (identifier "local_c4")) (; ";"))) (if_statement "if (local_c0 == piVar8) {\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }" (if "if") (parenthesized_expression "(local_c0 == piVar8)" (( "(") (binary_expression "local_c0 == piVar8" (identifier "local_c0") (== "==") (identifier "piVar8")) () ")")) (compound_statement "{\nLAB_0002bc78:\n    pcVar7 = (char *)dcgettext();\n    printf(pcVar7);\n    if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }\n    goto joined_r0x0002c26e;\n  }" ({ "{") (labeled_statement "LAB_0002bc78:\n    pcVar7 = (char *)dcgettext();" (statement_identifier "LAB_0002bc78") (: ":") (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" (identifier "printf") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 100) == 0) {\n      printf((char *)(unaff_EBP + 0x67e12));\n    }\n    else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      printf((char *)(unaff_EBP + 0x67e12));\n    }" ({ "{") (expression_statement "printf((char *)(unaff_EBP + 0x67e12));" (call_expression "printf((char *)(unaff_EBP + 0x67e12))" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x67e12))" (( "(") (cast_expression "(char *)(unaff_EBP + 0x67e12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x67e12)" (( "(") (binary_expression "unaff_EBP + 0x67e12" (identifier "unaff_EBP") (+ "+") (number_literal "0x67e12")) () ")"))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }" (else "else") (compound_statement "{\n      FUN_00022190();\n      printf((char *)(unaff_EBP + 0x4ceb0));\n    }" ({ "{") (expression_statement "FUN_00022190();" (call_expression "FUN_00022190()" (identifier "FUN_00022190") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "printf((char *)(unaff_EBP + 0x4ceb0));" (call_expression "printf((char *)(unaff_EBP + 0x4ceb0))" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x4ceb0))" (( "(") (cast_expression "(char *)(unaff_EBP + 0x4ceb0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4ceb0)" (( "(") (binary_expression "unaff_EBP + 0x4ceb0" (identifier "unaff_EBP") (+ "+") (number_literal "0x4ceb0")) () ")"))) () ")"))) (; ";")) (} "}")))) (goto_statement "goto joined_r0x0002c26e;" (goto "goto") (statement_identifier "joined_r0x0002c26e") (; ";")) (} "}"))) (expression_statement "local_44 = *(code **)((int)local_c4 + 0x10);" (assignment_expression "local_44 = *(code **)((int)local_c4 + 0x10)" (identifier "local_44") (= "=") (pointer_expression "*(code **)((int)local_c4 + 0x10)" (* "*") (cast_expression "(code **)((int)local_c4 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_c4 + 0x10)" (( "(") (binary_expression "(int)local_c4 + 0x10" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "local_40 = *(uint *)((int)local_c4 + 0x14);" (assignment_expression "local_40 = *(uint *)((int)local_c4 + 0x14)" (identifier "local_40") (= "=") (pointer_expression "*(uint *)((int)local_c4 + 0x14)" (* "*") (cast_expression "(uint *)((int)local_c4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 + 0x14)" (( "(") (binary_expression "(int)local_c4 + 0x14" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));" (assignment_expression "local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" (identifier "local_4c") (= "=") (cast_expression "(void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" (identifier "FUN_0001bf90") (argument_list "(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24))" (( "(") (number_literal "1") (, ",") (number_literal "0") (, ",") (pointer_expression "*(uint *)((int)pcVar6 + 0x20)" (* "*") (cast_expression "(uint *)((int)pcVar6 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pcVar6 + 0x20)" (( "(") (binary_expression "(int)pcVar6 + 0x20" (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6")) (+ "+") (number_literal "0x20")) () ")")))) (, ",") (pointer_expression "*(uint *)((int)pcVar6 + 0x24)" (* "*") (cast_expression "(uint *)((int)pcVar6 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pcVar6 + 0x24)" (( "(") (binary_expression "(int)pcVar6 + 0x24" (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6")) (+ "+") (number_literal "0x24")) () ")")))) () ")"))))) (; ";")) (expression_statement "local_48 = (code *)0x0;" (assignment_expression "local_48 = (code *)0x0" (identifier "local_48") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_4c != (void *)0x0) {\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }" (if "if") (parenthesized_expression "(local_4c != (void *)0x0)" (( "(") (binary_expression "local_4c != (void *)0x0" (identifier "local_4c") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_48 = *(code **)((int)pcVar6 + 0x20);\n  }" ({ "{") (expression_statement "local_48 = *(code **)((int)pcVar6 + 0x20);" (assignment_expression "local_48 = *(code **)((int)pcVar6 + 0x20)" (identifier "local_48") (= "=") (pointer_expression "*(code **)((int)pcVar6 + 0x20)" (* "*") (cast_expression "(code **)((int)pcVar6 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pcVar6 + 0x20)" (( "(") (binary_expression "(int)pcVar6 + 0x20" (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" (identifier "printf") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 100) == 0) {\n    printf((char *)(unaff_EBP + 0x67e12));\n  }\n  else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 100) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 100) == 0" (pointer_expression "*(int *)(param_1 + 100)" (* "*") (cast_expression "(int *)(param_1 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 100)" (( "(") (binary_expression "param_1 + 100" (identifier "param_1") (+ "+") (number_literal "100")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    printf((char *)(unaff_EBP + 0x67e12));\n  }" ({ "{") (expression_statement "printf((char *)(unaff_EBP + 0x67e12));" (call_expression "printf((char *)(unaff_EBP + 0x67e12))" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x67e12))" (( "(") (cast_expression "(char *)(unaff_EBP + 0x67e12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x67e12)" (( "(") (binary_expression "unaff_EBP + 0x67e12" (identifier "unaff_EBP") (+ "+") (number_literal "0x67e12")) () ")"))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }" (else "else") (compound_statement "{\n    FUN_00022190();\n    printf((char *)(unaff_EBP + 0x4ceb0));\n  }" ({ "{") (expression_statement "FUN_00022190();" (call_expression "FUN_00022190()" (identifier "FUN_00022190") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "printf((char *)(unaff_EBP + 0x4ceb0));" (call_expression "printf((char *)(unaff_EBP + 0x4ceb0))" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x4ceb0))" (( "(") (cast_expression "(char *)(unaff_EBP + 0x4ceb0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4ceb0)" (( "(") (binary_expression "unaff_EBP + 0x4ceb0" (identifier "unaff_EBP") (+ "+") (number_literal "0x4ceb0")) () ")"))) () ")"))) (; ";")) (} "}")))) (expression_statement "local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);" (assignment_expression "local_c0 = (int *)(&DAT_0008e36b + unaff_EBP)" (identifier "local_c0") (= "=") (cast_expression "(int *)(&DAT_0008e36b + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0008e36b + unaff_EBP)" (( "(") (binary_expression "&DAT_0008e36b + unaff_EBP" (pointer_expression "&DAT_0008e36b" (& "&") (identifier "DAT_0008e36b")) (+ "+") (identifier "unaff_EBP")) () ")")))) (; ";")) (expression_statement "FUN_0006b5b0();" (call_expression "FUN_0006b5b0()" (identifier "FUN_0006b5b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" (identifier "printf") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar12 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x4c)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (if_statement "if (iVar12 == 0) {\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }\n  else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_b0 = local_a4[9];\n    local_b4 = (code *)local_a4[8];\n    uVar15 = local_3c;\n    uVar18 = local_38;\nLAB_0002c050:\n    local_38 = uVar18;\n    local_3c = uVar15;\n    dcgettext();\n    pcVar6 = local_b4;\n    local_80 = 0;\n    local_84 = local_b4;\n    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);\n    piVar8 = local_c0;\n    if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }\n  }" ({ "{") (expression_statement "local_b0 = local_a4[9];" (assignment_expression "local_b0 = local_a4[9]" (identifier "local_b0") (= "=") (subscript_expression "local_a4[9]" (identifier "local_a4") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "local_b4 = (code *)local_a4[8];" (assignment_expression "local_b4 = (code *)local_a4[8]" (identifier "local_b4") (= "=") (cast_expression "(code *)local_a4[8]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_a4[8]" (identifier "local_a4") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "uVar15 = local_3c;" (assignment_expression "uVar15 = local_3c" (identifier "uVar15") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "uVar18 = local_38;" (assignment_expression "uVar18 = local_38" (identifier "uVar18") (= "=") (identifier "local_38")) (; ";")) (labeled_statement "LAB_0002c050:\n    local_38 = uVar18;" (statement_identifier "LAB_0002c050") (: ":") (expression_statement "local_38 = uVar18;" (assignment_expression "local_38 = uVar18" (identifier "local_38") (= "=") (identifier "uVar18")) (; ";"))) (expression_statement "local_3c = uVar15;" (assignment_expression "local_3c = uVar15" (identifier "local_3c") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar6 = local_b4;" (assignment_expression "pcVar6 = local_b4" (identifier "pcVar6") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = local_b4;" (assignment_expression "local_84 = local_b4" (identifier "local_84") (= "=") (identifier "local_b4")) (; ";")) (expression_statement "local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);" (assignment_expression "local_bc = (code *)FUN_0001bf90(1,0,local_b4,0)" (identifier "local_bc") (= "=") (cast_expression "(code *)FUN_0001bf90(1,0,local_b4,0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001bf90(1,0,local_b4,0)" (identifier "FUN_0001bf90") (argument_list "(1,0,local_b4,0)" (( "(") (number_literal "1") (, ",") (number_literal "0") (, ",") (identifier "local_b4") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "piVar8 = local_c0;" (assignment_expression "piVar8 = local_c0" (identifier "piVar8") (= "=") (identifier "local_c0")) (; ";")) (if_statement "if (local_bc != (code *)0x0) {\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }" (if "if") (parenthesized_expression "(local_bc != (code *)0x0)" (( "(") (binary_expression "local_bc != (code *)0x0" (identifier "local_bc") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);\n      local_b4 = pcVar6;\n      pcVar6 = (code *)FUN_0005db00();\n      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);\n      local_c4 = local_bc;\n      local_54 = pcVar6;\n      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }\n      free(local_bc);\n      local_8c = (code *)(unaff_EBP + 0x4cedf);\n      puVar14 = *(uint **)(param_1 + 0x5c);\n      uVar15 = *(uint *)(param_1 + 0x54);\n      local_c4 = (code *)puVar14;\n      if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }\n      if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }\n    }" ({ "{") (expression_statement "local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);" (assignment_expression "local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3)" (identifier "local_50") (= "=") (binary_expression "(uint)pcVar6 / (uint)(*local_c0 * 3)" (cast_expression "(uint)pcVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar6")) (/ "/") (call_expression "(uint)(*local_c0 * 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*local_c0 * 3)" (( "(") (binary_expression "*local_c0 * 3" (pointer_expression "*local_c0" (* "*") (identifier "local_c0")) (* "*") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "local_b4 = pcVar6;" (assignment_expression "local_b4 = pcVar6" (identifier "local_b4") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "pcVar6 = (code *)FUN_0005db00();" (assignment_expression "pcVar6 = (code *)FUN_0005db00()" (identifier "pcVar6") (= "=") (cast_expression "(code *)FUN_0005db00()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0005db00()" (identifier "FUN_0005db00") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_ac = (code *)(&UNK_0008e39b + unaff_EBP);" (assignment_expression "local_ac = (code *)(&UNK_0008e39b + unaff_EBP)" (identifier "local_ac") (= "=") (cast_expression "(code *)(&UNK_0008e39b + unaff_EBP)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_0008e39b + unaff_EBP)" (( "(") (binary_expression "&UNK_0008e39b + unaff_EBP" (pointer_expression "&UNK_0008e39b" (& "&") (identifier "UNK_0008e39b")) (+ "+") (identifier "unaff_EBP")) () ")")))) (; ";")) (expression_statement "local_c4 = local_bc;" (assignment_expression "local_c4 = local_bc" (identifier "local_c4") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "local_54 = pcVar6;" (assignment_expression "local_54 = pcVar6" (identifier "local_54") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }" (if "if") (parenthesized_expression "(!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc))" (( "(") (unary_expression "!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)" (! "!") (call_expression "CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)" (identifier "CARRY4") (argument_list "((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)" (( "(") (call_expression "(uint)(local_b4 + *piVar8 * -3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_b4 + *piVar8 * -3)" (( "(") (binary_expression "local_b4 + *piVar8 * -3" (identifier "local_b4") (+ "+") (binary_expression "*piVar8 * -3" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (* "*") (number_literal "-3"))) () ")"))) (, ",") (cast_expression "(uint)local_bc" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_bc")) () ")")))) () ")")) (compound_statement "{\n        do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));\n      }" ({ "{") (do_statement "do {\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));" (do "do") (compound_statement "{\n          pcVar11 = local_ac;\n          pcVar17 = local_c4;\n          *(undefined2 *)pcVar6 = 0;\n          *(undefined2 *)(pcVar6 + 0xc) = 0;\n          *(undefined2 *)(pcVar6 + 0x18) = 0;\n          uVar29 = (**(code **)local_ac)();\n          *(undefined8 *)(pcVar6 + 4) = uVar29;\n          iVar12 = *local_c0;\n          uVar29 = (**(code **)pcVar11)();\n          *(undefined8 *)(pcVar6 + 0x10) = uVar29;\n          iVar22 = *local_c0;\n          lVar30 = (**(code **)pcVar11)();\n          iVar4 = *local_c0;\n          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;\n          pcVar17 = pcVar6 + 4;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x10;\n          uVar15 = *(uint *)pcVar17;\n          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;\n          *(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);\n          pcVar17 = pcVar6 + 0x1c;\n          pcVar6 = pcVar6 + 0x24;\n          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);\n        }" ({ "{") (expression_statement "pcVar11 = local_ac;" (assignment_expression "pcVar11 = local_ac" (identifier "pcVar11") (= "=") (identifier "local_ac")) (; ";")) (expression_statement "pcVar17 = local_c4;" (assignment_expression "pcVar17 = local_c4" (identifier "pcVar17") (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(undefined2 *)pcVar6 = 0;" (assignment_expression "*(undefined2 *)pcVar6 = 0" (pointer_expression "*(undefined2 *)pcVar6" (* "*") (cast_expression "(undefined2 *)pcVar6" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(pcVar6 + 0xc) = 0;" (assignment_expression "*(undefined2 *)(pcVar6 + 0xc) = 0" (pointer_expression "*(undefined2 *)(pcVar6 + 0xc)" (* "*") (cast_expression "(undefined2 *)(pcVar6 + 0xc)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0xc)" (( "(") (binary_expression "pcVar6 + 0xc" (identifier "pcVar6") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(pcVar6 + 0x18) = 0;" (assignment_expression "*(undefined2 *)(pcVar6 + 0x18) = 0" (pointer_expression "*(undefined2 *)(pcVar6 + 0x18)" (* "*") (cast_expression "(undefined2 *)(pcVar6 + 0x18)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x18)" (( "(") (binary_expression "pcVar6 + 0x18" (identifier "pcVar6") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar29 = (**(code **)local_ac)();" (assignment_expression "uVar29 = (**(code **)local_ac)()" (identifier "uVar29") (= "=") (call_expression "(**(code **)local_ac)()" (parenthesized_expression "(**(code **)local_ac)" (( "(") (pointer_expression "**(code **)local_ac" (* "*") (pointer_expression "*(code **)local_ac" (* "*") (cast_expression "(code **)local_ac" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_ac")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar6 + 4) = uVar29;" (assignment_expression "*(undefined8 *)(pcVar6 + 4) = uVar29" (pointer_expression "*(undefined8 *)(pcVar6 + 4)" (* "*") (cast_expression "(undefined8 *)(pcVar6 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar29")) (; ";")) (expression_statement "iVar12 = *local_c0;" (assignment_expression "iVar12 = *local_c0" (identifier "iVar12") (= "=") (pointer_expression "*local_c0" (* "*") (identifier "local_c0"))) (; ";")) (expression_statement "uVar29 = (**(code **)pcVar11)();" (assignment_expression "uVar29 = (**(code **)pcVar11)()" (identifier "uVar29") (= "=") (call_expression "(**(code **)pcVar11)()" (parenthesized_expression "(**(code **)pcVar11)" (( "(") (pointer_expression "**(code **)pcVar11" (* "*") (pointer_expression "*(code **)pcVar11" (* "*") (cast_expression "(code **)pcVar11" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar11")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(pcVar6 + 0x10) = uVar29;" (assignment_expression "*(undefined8 *)(pcVar6 + 0x10) = uVar29" (pointer_expression "*(undefined8 *)(pcVar6 + 0x10)" (* "*") (cast_expression "(undefined8 *)(pcVar6 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x10)" (( "(") (binary_expression "pcVar6 + 0x10" (identifier "pcVar6") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar29")) (; ";")) (expression_statement "iVar22 = *local_c0;" (assignment_expression "iVar22 = *local_c0" (identifier "iVar22") (= "=") (pointer_expression "*local_c0" (* "*") (identifier "local_c0"))) (; ";")) (expression_statement "lVar30 = (**(code **)pcVar11)();" (assignment_expression "lVar30 = (**(code **)pcVar11)()" (identifier "lVar30") (= "=") (call_expression "(**(code **)pcVar11)()" (parenthesized_expression "(**(code **)pcVar11)" (( "(") (pointer_expression "**(code **)pcVar11" (* "*") (pointer_expression "*(code **)pcVar11" (* "*") (cast_expression "(code **)pcVar11" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar11")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar4 = *local_c0;" (assignment_expression "iVar4 = *local_c0" (identifier "iVar4") (= "=") (pointer_expression "*local_c0" (* "*") (identifier "local_c0"))) (; ";")) (expression_statement "local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;" (assignment_expression "local_c4 = pcVar17 + iVar4 + iVar22 + iVar12" (identifier "local_c4") (= "=") (binary_expression "pcVar17 + iVar4 + iVar22 + iVar12" (binary_expression "pcVar17 + iVar4 + iVar22" (binary_expression "pcVar17 + iVar4" (identifier "pcVar17") (+ "+") (identifier "iVar4")) (+ "+") (identifier "iVar22")) (+ "+") (identifier "iVar12"))) (; ";")) (expression_statement "pcVar17 = pcVar6 + 4;" (assignment_expression "pcVar17 = pcVar6 + 4" (identifier "pcVar17") (= "=") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar15 = *(uint *)pcVar17;" (assignment_expression "uVar15 = *(uint *)pcVar17" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)pcVar17" (* "*") (cast_expression "(uint *)pcVar17" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar17")))) (; ";")) (expression_statement "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;" (assignment_expression "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" (* "*") (cast_expression "(uint *)pcVar17" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar17"))) (= "=") (binary_expression "*(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" (* "*") (cast_expression "(uint *)pcVar17" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar17"))) (+ "+") (identifier "local_3c"))) (; ";")) (expression_statement "*(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);" (assignment_expression "*(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c)" (pointer_expression "*(uint *)(pcVar6 + 8)" (* "*") (cast_expression "(uint *)(pcVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c)" (binary_expression "*(uint *)(pcVar6 + 8) + local_38" (pointer_expression "*(uint *)(pcVar6 + 8)" (* "*") (cast_expression "(uint *)(pcVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (+ "+") (identifier "local_38")) (+ "+") (cast_expression "(uint)CARRY4(uVar15,local_3c)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar15,local_3c)" (identifier "CARRY4") (argument_list "(uVar15,local_3c)" (( "(") (identifier "uVar15") (, ",") (identifier "local_3c") () ")")))))) (; ";")) (expression_statement "pcVar17 = pcVar6 + 0x10;" (assignment_expression "pcVar17 = pcVar6 + 0x10" (identifier "pcVar17") (= "=") (binary_expression "pcVar6 + 0x10" (identifier "pcVar6") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uVar15 = *(uint *)pcVar17;" (assignment_expression "uVar15 = *(uint *)pcVar17" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)pcVar17" (* "*") (cast_expression "(uint *)pcVar17" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar17")))) (; ";")) (expression_statement "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;" (assignment_expression "*(uint *)pcVar17 = *(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" (* "*") (cast_expression "(uint *)pcVar17" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar17"))) (= "=") (binary_expression "*(uint *)pcVar17 + local_3c" (pointer_expression "*(uint *)pcVar17" (* "*") (cast_expression "(uint *)pcVar17" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar17"))) (+ "+") (identifier "local_3c"))) (; ";")) (expression_statement "*(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);" (assignment_expression "*(uint *)(pcVar6 + 0x14) =\n               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c)" (pointer_expression "*(uint *)(pcVar6 + 0x14)" (* "*") (cast_expression "(uint *)(pcVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x14)" (( "(") (binary_expression "pcVar6 + 0x14" (identifier "pcVar6") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c)" (binary_expression "*(uint *)(pcVar6 + 0x14) + local_38" (pointer_expression "*(uint *)(pcVar6 + 0x14)" (* "*") (cast_expression "(uint *)(pcVar6 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x14)" (( "(") (binary_expression "pcVar6 + 0x14" (identifier "pcVar6") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (identifier "local_38")) (+ "+") (cast_expression "(uint)CARRY4(uVar15,local_3c)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar15,local_3c)" (identifier "CARRY4") (argument_list "(uVar15,local_3c)" (( "(") (identifier "uVar15") (, ",") (identifier "local_3c") () ")")))))) (; ";")) (expression_statement "pcVar17 = pcVar6 + 0x1c;" (assignment_expression "pcVar17 = pcVar6 + 0x1c" (identifier "pcVar17") (= "=") (binary_expression "pcVar6 + 0x1c" (identifier "pcVar6") (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + 0x24;" (assignment_expression "pcVar6 = pcVar6 + 0x24" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + 0x24" (identifier "pcVar6") (+ "+") (number_literal "0x24"))) (; ";")) (expression_statement "*(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);" (assignment_expression "*(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c)" (pointer_expression "*(longlong *)pcVar17" (* "*") (cast_expression "(longlong *)pcVar17" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar17"))) (= "=") (binary_expression "lVar30 + CONCAT44(local_38,local_3c)" (identifier "lVar30") (+ "+") (call_expression "CONCAT44(local_38,local_3c)" (identifier "CONCAT44") (argument_list "(local_38,local_3c)" (( "(") (identifier "local_38") (, ",") (identifier "local_3c") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3))" (( "(") (binary_expression "local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3)" (identifier "local_c4") (<= "<=") (binary_expression "local_bc + (int)(local_b4 + iVar4 * -3)" (identifier "local_bc") (+ "+") (cast_expression "(int)(local_b4 + iVar4 * -3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_b4 + iVar4 * -3)" (( "(") (binary_expression "local_b4 + iVar4 * -3" (identifier "local_b4") (+ "+") (binary_expression "iVar4 * -3" (identifier "iVar4") (* "*") (number_literal "-3"))) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "free(local_bc);" (call_expression "free(local_bc)" (identifier "free") (argument_list "(local_bc)" (( "(") (identifier "local_bc") () ")"))) (; ";")) (expression_statement "local_8c = (code *)(unaff_EBP + 0x4cedf);" (assignment_expression "local_8c = (code *)(unaff_EBP + 0x4cedf)" (identifier "local_8c") (= "=") (cast_expression "(code *)(unaff_EBP + 0x4cedf)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4cedf)" (( "(") (binary_expression "unaff_EBP + 0x4cedf" (identifier "unaff_EBP") (+ "+") (number_literal "0x4cedf")) () ")")))) (; ";")) (expression_statement "puVar14 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x5c)" (identifier "puVar14") (= "=") (pointer_expression "*(uint **)(param_1 + 0x5c)" (* "*") (cast_expression "(uint **)(param_1 + 0x5c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "uVar15 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x54)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "local_c4 = (code *)puVar14;" (assignment_expression "local_c4 = (code *)puVar14" (identifier "local_c4") (= "=") (cast_expression "(code *)puVar14" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) (; ";")) (if_statement "if (puVar14 < puVar14 + uVar15 * 0x12) {\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }" (if "if") (parenthesized_expression "(puVar14 < puVar14 + uVar15 * 0x12)" (( "(") (binary_expression "puVar14 < puVar14 + uVar15 * 0x12" (identifier "puVar14") (< "<") (binary_expression "puVar14 + uVar15 * 0x12" (identifier "puVar14") (+ "+") (binary_expression "uVar15 * 0x12" (identifier "uVar15") (* "*") (number_literal "0x12")))) () ")")) (compound_statement "{\n        do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);\n      }" ({ "{") (do_statement "do {\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        } while (local_c4 < puVar14 + uVar15 * 0x12);" (do "do") (compound_statement "{\n          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }\n          local_c4 = (code *)((int)local_c4 + 0x48);\n        }" ({ "{") (if_statement "if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }" (if "if") (parenthesized_expression "(((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12))" (( "(") (binary_expression "((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&\n             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)" (parenthesized_expression "((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15))" (( "(") (binary_expression "(*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)" (parenthesized_expression "(*(uint *)((int)local_c4 + 4) == 4)" (( "(") (binary_expression "*(uint *)((int)local_c4 + 4) == 4" (pointer_expression "*(uint *)((int)local_c4 + 4)" (* "*") (cast_expression "(uint *)((int)local_c4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 + 4)" (( "(") (binary_expression "(int)local_c4 + 4" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)((int)local_c4 + 0x2c) < uVar15)" (( "(") (binary_expression "*(uint *)((int)local_c4 + 0x2c) < uVar15" (pointer_expression "*(uint *)((int)local_c4 + 0x2c)" (* "*") (cast_expression "(uint *)((int)local_c4 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 + 0x2c)" (( "(") (binary_expression "(int)local_c4 + 0x2c" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (identifier "uVar15")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)" (( "(") (binary_expression "local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12" (identifier "local_a4") (== "==") (binary_expression "puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12" (identifier "puVar14") (+ "+") (binary_expression "*(uint *)((int)local_c4 + 0x2c) * 0x12" (pointer_expression "*(uint *)((int)local_c4 + 0x2c)" (* "*") (cast_expression "(uint *)((int)local_c4 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 + 0x2c)" (( "(") (binary_expression "(int)local_c4 + 0x2c" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (number_literal "0x2c")) () ")")))) (* "*") (number_literal "0x12")))) () ")"))) () ")")) (compound_statement "{\n            iVar12 = FUN_0001e360();\n            if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }\n            local_a0 = local_60;\n            local_b4 = local_5c;\n            local_bc = local_5c;\n            if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }\n            free(local_b4);\n            puVar14 = *(uint **)(param_1 + 0x5c);\n            uVar15 = *(uint *)(param_1 + 0x54);\n          }" ({ "{") (expression_statement "iVar12 = FUN_0001e360();" (assignment_expression "iVar12 = FUN_0001e360()" (identifier "iVar12") (= "=") (call_expression "FUN_0001e360()" (identifier "FUN_0001e360") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              free(local_54);\n              local_54 = (code *)0x0;\n              local_50 = 0;\n              goto LAB_0002c236;\n            }" ({ "{") (expression_statement "free(local_54);" (call_expression "free(local_54)" (identifier "free") (argument_list "(local_54)" (( "(") (identifier "local_54") () ")"))) (; ";")) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" (identifier "local_54") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002c236;" (goto "goto") (statement_identifier "LAB_0002c236") (; ";")) (} "}"))) (expression_statement "local_a0 = local_60;" (assignment_expression "local_a0 = local_60" (identifier "local_a0") (= "=") (identifier "local_60")) (; ";")) (expression_statement "local_b4 = local_5c;" (assignment_expression "local_b4 = local_5c" (identifier "local_b4") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_bc = local_5c;" (assignment_expression "local_bc = local_5c" (identifier "local_bc") (= "=") (identifier "local_5c")) (; ";")) (if_statement "if (local_5c < local_5c + (int)local_60 * 0x18) {\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }" (if "if") (parenthesized_expression "(local_5c < local_5c + (int)local_60 * 0x18)" (( "(") (binary_expression "local_5c < local_5c + (int)local_60 * 0x18" (identifier "local_5c") (< "<") (binary_expression "local_5c + (int)local_60 * 0x18" (identifier "local_5c") (+ "+") (binary_expression "(int)local_60 * 0x18" (cast_expression "(int)local_60" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_60")) (* "*") (number_literal "0x18")))) () ")")) (compound_statement "{\n              local_88 = (char **)(param_1 + 0x42);\n              local_7c = (code **)(unaff_EBP + 0x5787f);\n              do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);\n            }" ({ "{") (expression_statement "local_88 = (char **)(param_1 + 0x42);" (assignment_expression "local_88 = (char **)(param_1 + 0x42)" (identifier "local_88") (= "=") (cast_expression "(char **)(param_1 + 0x42)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x42)" (( "(") (binary_expression "param_1 + 0x42" (identifier "param_1") (+ "+") (number_literal "0x42")) () ")")))) (; ";")) (expression_statement "local_7c = (code **)(unaff_EBP + 0x5787f);" (assignment_expression "local_7c = (code **)(unaff_EBP + 0x5787f)" (identifier "local_7c") (= "=") (cast_expression "(code **)(unaff_EBP + 0x5787f)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x5787f)" (( "(") (binary_expression "unaff_EBP + 0x5787f" (identifier "unaff_EBP") (+ "+") (number_literal "0x5787f")) () ")")))) (; ";")) (do_statement "do {\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              } while (local_bc < local_b4 + (int)local_a0 * 0x18);" (do "do") (compound_statement "{\n                piVar8 = local_34;\n                uVar15 = *(uint *)(local_bc + 0xc);\n                uVar18 = *(uint *)(local_bc + 8);\n                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }\n                local_bc = local_bc + 0x18;\n              }" ({ "{") (expression_statement "piVar8 = local_34;" (assignment_expression "piVar8 = local_34" (identifier "piVar8") (= "=") (identifier "local_34")) (; ";")) (expression_statement "uVar15 = *(uint *)(local_bc + 0xc);" (assignment_expression "uVar15 = *(uint *)(local_bc + 0xc)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(local_bc + 0xc)" (* "*") (cast_expression "(uint *)(local_bc + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_bc + 0xc)" (( "(") (binary_expression "local_bc + 0xc" (identifier "local_bc") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar18 = *(uint *)(local_bc + 8);" (assignment_expression "uVar18 = *(uint *)(local_bc + 8)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(local_bc + 8)" (* "*") (cast_expression "(uint *)(local_bc + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_bc + 8)" (( "(") (binary_expression "local_bc + 8" (identifier "local_bc") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }\n                else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }" (if "if") (parenthesized_expression "(*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0)" (( "(") (binary_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0" (pointer_expression "*(int *)(&DAT_0008a8e7 + unaff_EBP)" (* "*") (cast_expression "(int *)(&DAT_0008a8e7 + unaff_EBP)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0008a8e7 + unaff_EBP)" (( "(") (binary_expression "&DAT_0008a8e7 + unaff_EBP" (pointer_expression "&DAT_0008a8e7" (& "&") (identifier "DAT_0008a8e7")) (+ "+") (identifier "unaff_EBP")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  local_9c = (void *)FUN_00021e40();\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + uVar15 * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (!bVar25) goto LAB_0002c3b9;\nLAB_0002c4e0:\n                  dcgettext();\nLAB_0002c4fb:\n                  warn();\n                  local_b4 = local_5c;\n                  local_a0 = local_60;\n                }" ({ "{") (expression_statement "local_9c = (void *)FUN_00021e40();" (assignment_expression "local_9c = (void *)FUN_00021e40()" (identifier "local_9c") (= "=") (cast_expression "(void *)FUN_00021e40()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00021e40()" (identifier "FUN_00021e40") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar6 = (code *)FUN_00015c60();" (assignment_expression "pcVar6 = (code *)FUN_00015c60()" (identifier "pcVar6") (= "=") (cast_expression "(code *)FUN_00015c60()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00015c60()" (identifier "FUN_00015c60") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_ac = (code *)(piVar8 + uVar15 * 7);" (assignment_expression "local_ac = (code *)(piVar8 + uVar15 * 7)" (identifier "local_ac") (= "=") (cast_expression "(code *)(piVar8 + uVar15 * 7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + uVar15 * 7)" (( "(") (binary_expression "piVar8 + uVar15 * 7" (identifier "piVar8") (+ "+") (binary_expression "uVar15 * 7" (identifier "uVar15") (* "*") (number_literal "7"))) () ")")))) (; ";")) (expression_statement "bVar25 = pcVar6 == (code *)0x0;" (assignment_expression "bVar25 = pcVar6 == (code *)0x0" (identifier "bVar25") (= "=") (binary_expression "pcVar6 == (code *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (!bVar25) goto LAB_0002c3b9;" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_0002c3b9;" (goto "goto") (statement_identifier "LAB_0002c3b9") (; ";"))) (labeled_statement "LAB_0002c4e0:\n                  dcgettext();" (statement_identifier "LAB_0002c4e0") (: ":") (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_0002c4fb:\n                  warn();" (statement_identifier "LAB_0002c4fb") (: ":") (expression_statement "warn();" (call_expression "warn()" (identifier "warn") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "local_b4 = local_5c;" (assignment_expression "local_b4 = local_5c" (identifier "local_b4") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "local_a0 = local_60;" (assignment_expression "local_a0 = local_60" (identifier "local_a0") (= "=") (identifier "local_60")) (; ";")) (} "}")) (else_clause "else {\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }" (else "else") (compound_statement "{\n                  local_9c = (void *)(uVar18 & 0xff);\n                  pcVar6 = (code *)FUN_00015c60();\n                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);\n                  bVar25 = pcVar6 == (code *)0x0;\n                  if (bVar25) goto LAB_0002c4e0;\nLAB_0002c3b9:\n                  bVar27 = false;\n                  iVar12 = 0xd;\n                  pcVar17 = pcVar6;\n                  pcVar11 = local_8c;\n                  do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);\n                  if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  local_9c = *(void **)local_bc;\n                  local_98 = *(uint *)(local_bc + 4);\n                  uVar15 = FUN_0006b5b0();\n                  if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }\n                  FUN_0006b5b0();\n                  lVar30 = FUN_0006b6c0();\n                  pcVar6 = local_54 + uVar15 * 0x24;\n                  pcVar17 = *(code **)(local_ac + 0x18);\n                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;\n                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);\n                  local_ac._0_2_ = SUB42(pcVar17,0);\n                  local_ac = pcVar17;\n                  if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }\n                }" ({ "{") (expression_statement "local_9c = (void *)(uVar18 & 0xff);" (assignment_expression "local_9c = (void *)(uVar18 & 0xff)" (identifier "local_9c") (= "=") (cast_expression "(void *)(uVar18 & 0xff)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar18 & 0xff)" (( "(") (binary_expression "uVar18 & 0xff" (identifier "uVar18") (& "&") (number_literal "0xff")) () ")")))) (; ";")) (expression_statement "pcVar6 = (code *)FUN_00015c60();" (assignment_expression "pcVar6 = (code *)FUN_00015c60()" (identifier "pcVar6") (= "=") (cast_expression "(code *)FUN_00015c60()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00015c60()" (identifier "FUN_00015c60") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);" (assignment_expression "local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7)" (identifier "local_ac") (= "=") (cast_expression "(code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7)" (( "(") (binary_expression "piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7" (identifier "piVar8") (+ "+") (binary_expression "(uVar18 >> 8 | uVar15 << 0x18) * 7" (parenthesized_expression "(uVar18 >> 8 | uVar15 << 0x18)" (( "(") (binary_expression "uVar18 >> 8 | uVar15 << 0x18" (binary_expression "uVar18 >> 8" (identifier "uVar18") (>> ">>") (number_literal "8")) (| "|") (binary_expression "uVar15 << 0x18" (identifier "uVar15") (<< "<<") (number_literal "0x18"))) () ")")) (* "*") (number_literal "7"))) () ")")))) (; ";")) (expression_statement "bVar25 = pcVar6 == (code *)0x0;" (assignment_expression "bVar25 = pcVar6 == (code *)0x0" (identifier "bVar25") (= "=") (binary_expression "pcVar6 == (code *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar25) goto LAB_0002c4e0;" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (goto_statement "goto LAB_0002c4e0;" (goto "goto") (statement_identifier "LAB_0002c4e0") (; ";"))) (labeled_statement "LAB_0002c3b9:\n                  bVar27 = false;" (statement_identifier "LAB_0002c3b9") (: ":") (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" (identifier "bVar27") (= "=") (false "false")) (; ";"))) (expression_statement "iVar12 = 0xd;" (assignment_expression "iVar12 = 0xd" (identifier "iVar12") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" (identifier "pcVar17") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "pcVar11 = local_8c;" (assignment_expression "pcVar11 = local_8c" (identifier "pcVar11") (= "=") (identifier "local_8c")) (; ";")) (do_statement "do {\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  } while (bVar25);" (do "do") (compound_statement "{\n                    if (iVar12 == 0) break;\n                    iVar12 = iVar12 + -1;\n                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;\n                    bVar25 = *pcVar17 == *pcVar11;\n                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;\n                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;\n                  }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar27 = (byte)*pcVar17 < (byte)*pcVar11;" (assignment_expression "bVar27 = (byte)*pcVar17 < (byte)*pcVar11" (identifier "bVar27") (= "=") (binary_expression "(byte)*pcVar17 < (byte)*pcVar11" (binary_expression "(byte)*pcVar17" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar17")) (< "<") (binary_expression "(byte)*pcVar11" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "pcVar11")))) (; ";")) (expression_statement "bVar25 = *pcVar17 == *pcVar11;" (assignment_expression "bVar25 = *pcVar17 == *pcVar11" (identifier "bVar25") (= "=") (binary_expression "*pcVar17 == *pcVar11" (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) (== "==") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")))) (; ";")) (expression_statement "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar17 + (uint)bVar28 * -2" (identifier "pcVar17") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;" (assignment_expression "pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1" (identifier "pcVar11") (= "=") (binary_expression "pcVar11 + (uint)bVar28 * -2 + 1" (binary_expression "pcVar11 + (uint)bVar28 * -2" (identifier "pcVar11") (+ "+") (binary_expression "(uint)bVar28 * -2" (cast_expression "(uint)bVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar28")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (if_statement "if ((!bVar27 && !bVar25) != bVar27) {\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" (if "if") (parenthesized_expression "((!bVar27 && !bVar25) != bVar27)" (( "(") (binary_expression "(!bVar27 && !bVar25) != bVar27" (parenthesized_expression "(!bVar27 && !bVar25)" (( "(") (binary_expression "!bVar27 && !bVar25" (unary_expression "!bVar27" (! "!") (identifier "bVar27")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (!= "!=") (identifier "bVar27")) () ")")) (compound_statement "{\n                    local_b4 = pcVar6;\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" ({ "{") (expression_statement "local_b4 = pcVar6;" (assignment_expression "local_b4 = pcVar6" (identifier "local_b4") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0002c4fb;" (goto "goto") (statement_identifier "LAB_0002c4fb") (; ";")) (} "}"))) (expression_statement "local_9c = *(void **)local_bc;" (assignment_expression "local_9c = *(void **)local_bc" (identifier "local_9c") (= "=") (pointer_expression "*(void **)local_bc" (* "*") (cast_expression "(void **)local_bc" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_bc")))) (; ";")) (expression_statement "local_98 = *(uint *)(local_bc + 4);" (assignment_expression "local_98 = *(uint *)(local_bc + 4)" (identifier "local_98") (= "=") (pointer_expression "*(uint *)(local_bc + 4)" (* "*") (cast_expression "(uint *)(local_bc + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_bc + 4)" (( "(") (binary_expression "local_bc + 4" (identifier "local_bc") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar15 = FUN_0006b5b0();" (assignment_expression "uVar15 = FUN_0006b5b0()" (identifier "uVar15") (= "=") (call_expression "FUN_0006b5b0()" (identifier "FUN_0006b5b0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_50 <= uVar15) {\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" (if "if") (parenthesized_expression "(local_50 <= uVar15)" (( "(") (binary_expression "local_50 <= uVar15" (identifier "local_50") (<= "<=") (identifier "uVar15")) () ")")) (compound_statement "{\n                    dcgettext();\n                    goto LAB_0002c4fb;\n                  }" ({ "{") (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0002c4fb;" (goto "goto") (statement_identifier "LAB_0002c4fb") (; ";")) (} "}"))) (expression_statement "FUN_0006b5b0();" (call_expression "FUN_0006b5b0()" (identifier "FUN_0006b5b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar30 = FUN_0006b6c0();" (assignment_expression "lVar30 = FUN_0006b6c0()" (identifier "lVar30") (= "=") (call_expression "FUN_0006b6c0()" (identifier "FUN_0006b6c0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar6 = local_54 + uVar15 * 0x24;" (assignment_expression "pcVar6 = local_54 + uVar15 * 0x24" (identifier "pcVar6") (= "=") (binary_expression "local_54 + uVar15 * 0x24" (identifier "local_54") (+ "+") (binary_expression "uVar15 * 0x24" (identifier "uVar15") (* "*") (number_literal "0x24")))) (; ";")) (expression_statement "pcVar17 = *(code **)(local_ac + 0x18);" (assignment_expression "pcVar17 = *(code **)(local_ac + 0x18)" (identifier "pcVar17") (= "=") (pointer_expression "*(code **)(local_ac + 0x18)" (* "*") (cast_expression "(code **)(local_ac + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_ac + 0x18)" (( "(") (binary_expression "local_ac + 0x18" (identifier "local_ac") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;" (assignment_expression "iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac" (identifier "iVar12") (= "=") (binary_expression "*(uint *)(local_bc + 0x10) + *(uint *)local_ac" (pointer_expression "*(uint *)(local_bc + 0x10)" (* "*") (cast_expression "(uint *)(local_bc + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_bc + 0x10)" (( "(") (binary_expression "local_bc + 0x10" (identifier "local_bc") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (pointer_expression "*(uint *)local_ac" (* "*") (cast_expression "(uint *)local_ac" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_ac"))))) (; ";")) (expression_statement "iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);" (assignment_expression "iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" (identifier "iVar22") (= "=") (binary_expression "*(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +\n                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" (binary_expression "*(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4)" (pointer_expression "*(uint *)(local_bc + 0x14)" (* "*") (cast_expression "(uint *)(local_bc + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_bc + 0x14)" (( "(") (binary_expression "local_bc + 0x14" (identifier "local_bc") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (pointer_expression "*(uint *)(local_ac + 4)" (* "*") (cast_expression "(uint *)(local_ac + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ac + 4)" (( "(") (binary_expression "local_ac + 4" (identifier "local_ac") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" (identifier "CARRY4") (argument_list "(*(uint *)(local_bc + 0x10),*(uint *)local_ac)" (( "(") (pointer_expression "*(uint *)(local_bc + 0x10)" (* "*") (cast_expression "(uint *)(local_bc + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_bc + 0x10)" (( "(") (binary_expression "local_bc + 0x10" (identifier "local_bc") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(uint *)local_ac" (* "*") (cast_expression "(uint *)local_ac" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_ac"))) () ")")))))) (; ";")) (expression_statement "local_ac._0_2_ = SUB42(pcVar17,0);" (assignment_expression "local_ac._0_2_ = SUB42(pcVar17,0)" (field_expression "local_ac._0_2_" (identifier "local_ac") (. ".") (field_identifier "_0_2_")) (= "=") (call_expression "SUB42(pcVar17,0)" (identifier "SUB42") (argument_list "(pcVar17,0)" (( "(") (identifier "pcVar17") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_ac = pcVar17;" (assignment_expression "local_ac = pcVar17" (identifier "local_ac") (= "=") (identifier "pcVar17")) (; ";")) (if_statement "if (lVar30 == 1) {\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }\n                  else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" (if "if") (parenthesized_expression "(lVar30 == 1)" (( "(") (binary_expression "lVar30 == 1" (identifier "lVar30") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                    *(int *)(pcVar6 + 0x10) = iVar12;\n                    *(int *)(pcVar6 + 0x14) = iVar22;\n                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;\n                  }" ({ "{") (expression_statement "*(int *)(pcVar6 + 0x10) = iVar12;" (assignment_expression "*(int *)(pcVar6 + 0x10) = iVar12" (pointer_expression "*(int *)(pcVar6 + 0x10)" (* "*") (cast_expression "(int *)(pcVar6 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x10)" (( "(") (binary_expression "pcVar6 + 0x10" (identifier "pcVar6") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(int *)(pcVar6 + 0x14) = iVar22;" (assignment_expression "*(int *)(pcVar6 + 0x14) = iVar22" (pointer_expression "*(int *)(pcVar6 + 0x14)" (* "*") (cast_expression "(int *)(pcVar6 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x14)" (( "(") (binary_expression "pcVar6 + 0x14" (identifier "pcVar6") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar22")) (; ";")) (expression_statement "*(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;" (assignment_expression "*(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_" (pointer_expression "*(undefined2 *)(pcVar6 + 0xc)" (* "*") (cast_expression "(undefined2 *)(pcVar6 + 0xc)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0xc)" (( "(") (binary_expression "pcVar6 + 0xc" (identifier "pcVar6") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (field_expression "local_ac._0_2_" (identifier "local_ac") (. ".") (field_identifier "_0_2_"))) (; ";")) (} "}")) (else_clause "else if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" (else "else") (if_statement "if (lVar30 == 2) {\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }\n                  else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" (if "if") (parenthesized_expression "(lVar30 == 2)" (( "(") (binary_expression "lVar30 == 2" (identifier "lVar30") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;\n                    *(int *)(pcVar6 + 0x1c) = iVar12;\n                    *(int *)(pcVar6 + 0x20) = iVar22;\n                  }" ({ "{") (expression_statement "*(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;" (assignment_expression "*(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_" (pointer_expression "*(undefined2 *)(pcVar6 + 0x18)" (* "*") (cast_expression "(undefined2 *)(pcVar6 + 0x18)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x18)" (( "(") (binary_expression "pcVar6 + 0x18" (identifier "pcVar6") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (field_expression "local_ac._0_2_" (identifier "local_ac") (. ".") (field_identifier "_0_2_"))) (; ";")) (expression_statement "*(int *)(pcVar6 + 0x1c) = iVar12;" (assignment_expression "*(int *)(pcVar6 + 0x1c) = iVar12" (pointer_expression "*(int *)(pcVar6 + 0x1c)" (* "*") (cast_expression "(int *)(pcVar6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x1c)" (( "(") (binary_expression "pcVar6 + 0x1c" (identifier "pcVar6") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(int *)(pcVar6 + 0x20) = iVar22;" (assignment_expression "*(int *)(pcVar6 + 0x20) = iVar22" (pointer_expression "*(int *)(pcVar6 + 0x20)" (* "*") (cast_expression "(int *)(pcVar6 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x20)" (( "(") (binary_expression "pcVar6 + 0x20" (identifier "pcVar6") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "iVar22")) (; ";")) (} "}")) (else_clause "else {\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" (else "else") (compound_statement "{\n                    *(undefined2 *)pcVar6 = local_ac._0_2_;\n                    *(int *)(pcVar6 + 4) = iVar12;\n                    *(int *)(pcVar6 + 8) = iVar22;\n                  }" ({ "{") (expression_statement "*(undefined2 *)pcVar6 = local_ac._0_2_;" (assignment_expression "*(undefined2 *)pcVar6 = local_ac._0_2_" (pointer_expression "*(undefined2 *)pcVar6" (* "*") (cast_expression "(undefined2 *)pcVar6" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6"))) (= "=") (field_expression "local_ac._0_2_" (identifier "local_ac") (. ".") (field_identifier "_0_2_"))) (; ";")) (expression_statement "*(int *)(pcVar6 + 4) = iVar12;" (assignment_expression "*(int *)(pcVar6 + 4) = iVar12" (pointer_expression "*(int *)(pcVar6 + 4)" (* "*") (cast_expression "(int *)(pcVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(int *)(pcVar6 + 8) = iVar22;" (assignment_expression "*(int *)(pcVar6 + 8) = iVar22" (pointer_expression "*(int *)(pcVar6 + 8)" (* "*") (cast_expression "(int *)(pcVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 8)" (( "(") (binary_expression "pcVar6 + 8" (identifier "pcVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar22")) (; ";")) (} "}")))))) (} "}")))) (expression_statement "local_bc = local_bc + 0x18;" (assignment_expression "local_bc = local_bc + 0x18" (identifier "local_bc") (= "=") (binary_expression "local_bc + 0x18" (identifier "local_bc") (+ "+") (number_literal "0x18"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_bc < local_b4 + (int)local_a0 * 0x18)" (( "(") (binary_expression "local_bc < local_b4 + (int)local_a0 * 0x18" (identifier "local_bc") (< "<") (binary_expression "local_b4 + (int)local_a0 * 0x18" (identifier "local_b4") (+ "+") (binary_expression "(int)local_a0 * 0x18" (cast_expression "(int)local_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a0")) (* "*") (number_literal "0x18")))) () ")")) (; ";")) (} "}"))) (expression_statement "free(local_b4);" (call_expression "free(local_b4)" (identifier "free") (argument_list "(local_b4)" (( "(") (identifier "local_b4") () ")"))) (; ";")) (expression_statement "puVar14 = *(uint **)(param_1 + 0x5c);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x5c)" (identifier "puVar14") (= "=") (pointer_expression "*(uint **)(param_1 + 0x5c)" (* "*") (cast_expression "(uint **)(param_1 + 0x5c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "uVar15 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar15 = *(uint *)(param_1 + 0x54)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_c4 = (code *)((int)local_c4 + 0x48);" (assignment_expression "local_c4 = (code *)((int)local_c4 + 0x48)" (identifier "local_c4") (= "=") (cast_expression "(code *)((int)local_c4 + 0x48)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_c4 + 0x48)" (( "(") (binary_expression "(int)local_c4 + 0x48" (cast_expression "(int)local_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_c4")) (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_c4 < puVar14 + uVar15 * 0x12)" (( "(") (binary_expression "local_c4 < puVar14 + uVar15 * 0x12" (identifier "local_c4") (< "<") (binary_expression "puVar14 + uVar15 * 0x12" (identifier "puVar14") (+ "+") (binary_expression "uVar15 * 0x12" (identifier "uVar15") (* "*") (number_literal "0x12")))) () ")")) (; ";")) (} "}"))) (if_statement "if (local_50 != 0) {\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }" (if "if") (parenthesized_expression "(local_50 != 0)" (( "(") (binary_expression "local_50 != 0" (identifier "local_50") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_2c = (void *)FUN_0006b190();\n        local_28 = local_30;\n        if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }\n        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));\n        if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }\n        free(local_2c);\n      }" ({ "{") (expression_statement "local_2c = (void *)FUN_0006b190();" (assignment_expression "local_2c = (void *)FUN_0006b190()" (identifier "local_2c") (= "=") (cast_expression "(void *)FUN_0006b190()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0006b190()" (identifier "FUN_0006b190") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_28 = local_30;" (assignment_expression "local_28 = local_30" (identifier "local_28") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_30 != 0) {\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }" (if "if") (parenthesized_expression "(local_30 != 0)" (( "(") (binary_expression "local_30 != 0" (identifier "local_30") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_28 = 0;\n          piVar8 = local_34;\n          do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);\n        }" ({ "{") (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = local_34;" (assignment_expression "piVar8 = local_34" (identifier "piVar8") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          } while (local_34 + local_30 * 7 != piVar8);" (do "do") (compound_statement "{\n            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }\n            piVar8 = piVar8 + 7;\n          }" ({ "{") (if_statement "if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }" (if "if") (parenthesized_expression "((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2))" (( "(") (binary_expression "(*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)" (parenthesized_expression "(*piVar8 != 0 || piVar8[1] != 0)" (( "(") (binary_expression "*piVar8 != 0 || piVar8[1] != 0" (binary_expression "*piVar8 != 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "piVar8[1] != 0" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(piVar8 + 5) & 0xf) == 2)" (( "(") (binary_expression "(*(byte *)(piVar8 + 5) & 0xf) == 2" (parenthesized_expression "(*(byte *)(piVar8 + 5) & 0xf)" (( "(") (binary_expression "*(byte *)(piVar8 + 5) & 0xf" (pointer_expression "*(byte *)(piVar8 + 5)" (* "*") (cast_expression "(byte *)(piVar8 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 5)" (( "(") (binary_expression "piVar8 + 5" (identifier "piVar8") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n              iVar12 = local_28 * 0x1c;\n              local_28 = local_28 + 1;\n              piVar20 = (int *)(iVar12 + (int)local_2c);\n              *piVar20 = *piVar8;\n              piVar20[1] = piVar8[1];\n              piVar20[2] = piVar8[2];\n              piVar20[3] = piVar8[3];\n              piVar20[4] = piVar8[4];\n              piVar20[5] = piVar8[5];\n              piVar20[6] = piVar8[6];\n            }" ({ "{") (expression_statement "iVar12 = local_28 * 0x1c;" (assignment_expression "iVar12 = local_28 * 0x1c" (identifier "iVar12") (= "=") (binary_expression "local_28 * 0x1c" (identifier "local_28") (* "*") (number_literal "0x1c"))) (; ";")) (expression_statement "local_28 = local_28 + 1;" (assignment_expression "local_28 = local_28 + 1" (identifier "local_28") (= "=") (binary_expression "local_28 + 1" (identifier "local_28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar20 = (int *)(iVar12 + (int)local_2c);" (assignment_expression "piVar20 = (int *)(iVar12 + (int)local_2c)" (identifier "piVar20") (= "=") (cast_expression "(int *)(iVar12 + (int)local_2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + (int)local_2c)" (( "(") (binary_expression "iVar12 + (int)local_2c" (identifier "iVar12") (+ "+") (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c"))) () ")")))) (; ";")) (expression_statement "*piVar20 = *piVar8;" (assignment_expression "*piVar20 = *piVar8" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "piVar20[1] = piVar8[1];" (assignment_expression "piVar20[1] = piVar8[1]" (subscript_expression "piVar20[1]" (identifier "piVar20") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar20[2] = piVar8[2];" (assignment_expression "piVar20[2] = piVar8[2]" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar20[3] = piVar8[3];" (assignment_expression "piVar20[3] = piVar8[3]" (subscript_expression "piVar20[3]" (identifier "piVar20") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar20[4] = piVar8[4];" (assignment_expression "piVar20[4] = piVar8[4]" (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "piVar8[4]" (identifier "piVar8") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar20[5] = piVar8[5];" (assignment_expression "piVar20[5] = piVar8[5]" (subscript_expression "piVar20[5]" (identifier "piVar20") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "piVar8[5]" (identifier "piVar8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar20[6] = piVar8[6];" (assignment_expression "piVar20[6] = piVar8[6]" (subscript_expression "piVar20[6]" (identifier "piVar20") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "piVar8[6]" (identifier "piVar8") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (expression_statement "piVar8 = piVar8 + 7;" (assignment_expression "piVar8 = piVar8 + 7" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 7" (identifier "piVar8") (+ "+") (number_literal "7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_34 + local_30 * 7 != piVar8)" (( "(") (binary_expression "local_34 + local_30 * 7 != piVar8" (binary_expression "local_34 + local_30 * 7" (identifier "local_34") (+ "+") (binary_expression "local_30 * 7" (identifier "local_30") (* "*") (number_literal "7"))) (!= "!=") (identifier "piVar8")) () ")")) (; ";")) (} "}"))) (expression_statement "qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));" (call_expression "qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d))" (identifier "qsort") (argument_list "(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d))" (( "(") (identifier "local_2c") (, ",") (identifier "local_28") (, ",") (number_literal "0x1c") (, ",") (call_expression "(__compar_fn_t)(unaff_EBP + -0xfc3d)" (parenthesized_expression "(__compar_fn_t)" (( "(") (identifier "__compar_fn_t") () ")")) (argument_list "(unaff_EBP + -0xfc3d)" (( "(") (binary_expression "unaff_EBP + -0xfc3d" (identifier "unaff_EBP") (+ "+") (number_literal "-0xfc3d")) () ")"))) () ")"))) (; ";")) (if_statement "if (local_54 < local_54 + local_50 * 0x24) {\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }" (if "if") (parenthesized_expression "(local_54 < local_54 + local_50 * 0x24)" (( "(") (binary_expression "local_54 < local_54 + local_50 * 0x24" (identifier "local_54") (< "<") (binary_expression "local_54 + local_50 * 0x24" (identifier "local_54") (+ "+") (binary_expression "local_50 * 0x24" (identifier "local_50") (* "*") (number_literal "0x24")))) () ")")) (compound_statement "{\n          local_88 = &local_60;\n          local_7c = &local_5c;\n          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);\n          local_a0 = (char *)(unaff_EBP + 0x4ceed);\n          local_9c = (void *)(unaff_EBP + 0x4cef5);\n          local_8c = (code *)(unaff_EBP + 0x4cefa);\n          local_74 = (char *)(unaff_EBP + 0x4cef0);\n          pcVar6 = local_54;\n          do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);\n        }" ({ "{") (expression_statement "local_88 = &local_60;" (assignment_expression "local_88 = &local_60" (identifier "local_88") (= "=") (pointer_expression "&local_60" (& "&") (identifier "local_60"))) (; ";")) (expression_statement "local_7c = &local_5c;" (assignment_expression "local_7c = &local_5c" (identifier "local_7c") (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);" (assignment_expression "local_c4 = *(code **)(&DAT_0008859b + unaff_EBP)" (identifier "local_c4") (= "=") (pointer_expression "*(code **)(&DAT_0008859b + unaff_EBP)" (* "*") (cast_expression "(code **)(&DAT_0008859b + unaff_EBP)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&DAT_0008859b + unaff_EBP)" (( "(") (binary_expression "&DAT_0008859b + unaff_EBP" (pointer_expression "&DAT_0008859b" (& "&") (identifier "DAT_0008859b")) (+ "+") (identifier "unaff_EBP")) () ")"))))) (; ";")) (expression_statement "local_a0 = (char *)(unaff_EBP + 0x4ceed);" (assignment_expression "local_a0 = (char *)(unaff_EBP + 0x4ceed)" (identifier "local_a0") (= "=") (cast_expression "(char *)(unaff_EBP + 0x4ceed)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4ceed)" (( "(") (binary_expression "unaff_EBP + 0x4ceed" (identifier "unaff_EBP") (+ "+") (number_literal "0x4ceed")) () ")")))) (; ";")) (expression_statement "local_9c = (void *)(unaff_EBP + 0x4cef5);" (assignment_expression "local_9c = (void *)(unaff_EBP + 0x4cef5)" (identifier "local_9c") (= "=") (cast_expression "(void *)(unaff_EBP + 0x4cef5)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4cef5)" (( "(") (binary_expression "unaff_EBP + 0x4cef5" (identifier "unaff_EBP") (+ "+") (number_literal "0x4cef5")) () ")")))) (; ";")) (expression_statement "local_8c = (code *)(unaff_EBP + 0x4cefa);" (assignment_expression "local_8c = (code *)(unaff_EBP + 0x4cefa)" (identifier "local_8c") (= "=") (cast_expression "(code *)(unaff_EBP + 0x4cefa)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4cefa)" (( "(") (binary_expression "unaff_EBP + 0x4cefa" (identifier "unaff_EBP") (+ "+") (number_literal "0x4cefa")) () ")")))) (; ";")) (expression_statement "local_74 = (char *)(unaff_EBP + 0x4cef0);" (assignment_expression "local_74 = (char *)(unaff_EBP + 0x4cef0)" (identifier "local_74") (= "=") (cast_expression "(char *)(unaff_EBP + 0x4cef0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4cef0)" (( "(") (binary_expression "unaff_EBP + 0x4cef0" (identifier "unaff_EBP") (+ "+") (number_literal "0x4cef0")) () ")")))) (; ";")) (expression_statement "pcVar6 = local_54;" (assignment_expression "pcVar6 = local_54" (identifier "pcVar6") (= "=") (identifier "local_54")) (; ";")) (do_statement "do {\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          } while (pcVar6 < local_54 + local_50 * 0x24);" (do "do") (compound_statement "{\n            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));\n            pcVar17 = local_c4;\n            fwrite(local_a0,1,2,*(FILE **)local_c4);\n            if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }\n            pcVar17 = local_c4;\n            fwrite(local_9c,1,4,*(FILE **)local_c4);\n            FUN_0001e910();\n            fputc(0x2d,*(FILE **)pcVar17);\n            FUN_0001e910();\n            printf((char *)local_8c);\n            if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }\nLAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;\n          }" ({ "{") (expression_statement "FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));" (call_expression "FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4))" (identifier "FUN_00023b50") (argument_list "(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4))" (( "(") (identifier "local_24") (, ",") (identifier "local_20") (, ",") (pointer_expression "*(undefined2 *)pcVar6" (* "*") (cast_expression "(undefined2 *)pcVar6" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6"))) (, ",") (pointer_expression "*(uint *)(pcVar6 + 4)" (* "*") (cast_expression "(uint *)(pcVar6 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (expression_statement "pcVar17 = local_c4;" (assignment_expression "pcVar17 = local_c4" (identifier "pcVar17") (= "=") (identifier "local_c4")) (; ";")) (expression_statement "fwrite(local_a0,1,2,*(FILE **)local_c4);" (call_expression "fwrite(local_a0,1,2,*(FILE **)local_c4)" (identifier "fwrite") (argument_list "(local_a0,1,2,*(FILE **)local_c4)" (( "(") (identifier "local_a0") (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (pointer_expression "*(FILE **)local_c4" (* "*") (cast_expression "(FILE **)local_c4" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_c4"))) () ")"))) (; ";")) (if_statement "if ((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {\n              printf(local_74);\n            }" (if "if") (parenthesized_expression "((local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0))" (( "(") (binary_expression "(local_60 != (char *)0x0) &&\n               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)" (parenthesized_expression "(local_60 != (char *)0x0)" (( "(") (binary_expression "local_60 != (char *)0x0" (identifier "local_60") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)" (( "(") (comma_expression "fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0" (call_expression "fputs(local_60,*(FILE **)pcVar17)" (identifier "fputs") (argument_list "(local_60,*(FILE **)pcVar17)" (( "(") (identifier "local_60") (, ",") (pointer_expression "*(FILE **)pcVar17" (* "*") (cast_expression "(FILE **)pcVar17" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar17"))) () ")"))) (, ",") (binary_expression "local_5c != (code *)0x0 || local_58 != 0" (binary_expression "local_5c != (code *)0x0" (identifier "local_5c") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n              printf(local_74);\n            }" ({ "{") (expression_statement "printf(local_74);" (call_expression "printf(local_74)" (identifier "printf") (argument_list "(local_74)" (( "(") (identifier "local_74") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar17 = local_c4;" (assignment_expression "pcVar17 = local_c4" (identifier "pcVar17") (= "=") (identifier "local_c4")) (; ";")) (expression_statement "fwrite(local_9c,1,4,*(FILE **)local_c4);" (call_expression "fwrite(local_9c,1,4,*(FILE **)local_c4)" (identifier "fwrite") (argument_list "(local_9c,1,4,*(FILE **)local_c4)" (( "(") (identifier "local_9c") (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (pointer_expression "*(FILE **)local_c4" (* "*") (cast_expression "(FILE **)local_c4" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "local_c4"))) () ")"))) (; ";")) (expression_statement "FUN_0001e910();" (call_expression "FUN_0001e910()" (identifier "FUN_0001e910") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "fputc(0x2d,*(FILE **)pcVar17);" (call_expression "fputc(0x2d,*(FILE **)pcVar17)" (identifier "fputc") (argument_list "(0x2d,*(FILE **)pcVar17)" (( "(") (number_literal "0x2d") (, ",") (pointer_expression "*(FILE **)pcVar17" (* "*") (cast_expression "(FILE **)pcVar17" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pcVar17"))) () ")"))) (; ";")) (expression_statement "FUN_0001e910();" (call_expression "FUN_0001e910()" (identifier "FUN_0001e910") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "printf((char *)local_8c);" (call_expression "printf((char *)local_8c)" (identifier "printf") (argument_list "((char *)local_8c)" (( "(") (cast_expression "(char *)local_8c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_8c")) () ")"))) (; ";")) (if_statement "if (local_4c != (void *)0x0) {\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }" (if "if") (parenthesized_expression "(local_4c != (void *)0x0)" (( "(") (binary_expression "local_4c != (void *)0x0" (identifier "local_4c") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar1 = *(ushort *)(pcVar6 + 0x18);\n              local_b4 = *(code **)(pcVar6 + 0x1c);\n              local_a8 = local_40;\n              local_b0 = *(uint *)(pcVar6 + 0x20);\n              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);\n              local_ac = local_44;\n              pcVar17 = local_b4 + -(int)local_44;\n              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);\n              local_bc = local_48;\n              local_b8 = 0;\n              if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }\n              dcgettext();\n              warn();\n            }" ({ "{") (expression_statement "uVar1 = *(ushort *)(pcVar6 + 0x18);" (assignment_expression "uVar1 = *(ushort *)(pcVar6 + 0x18)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(pcVar6 + 0x18)" (* "*") (cast_expression "(ushort *)(pcVar6 + 0x18)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x18)" (( "(") (binary_expression "pcVar6 + 0x18" (identifier "pcVar6") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "local_b4 = *(code **)(pcVar6 + 0x1c);" (assignment_expression "local_b4 = *(code **)(pcVar6 + 0x1c)" (identifier "local_b4") (= "=") (pointer_expression "*(code **)(pcVar6 + 0x1c)" (* "*") (cast_expression "(code **)(pcVar6 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar6 + 0x1c)" (( "(") (binary_expression "pcVar6 + 0x1c" (identifier "pcVar6") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "local_a8 = local_40;" (assignment_expression "local_a8 = local_40" (identifier "local_a8") (= "=") (identifier "local_40")) (; ";")) (expression_statement "local_b0 = *(uint *)(pcVar6 + 0x20);" (assignment_expression "local_b0 = *(uint *)(pcVar6 + 0x20)" (identifier "local_b0") (= "=") (pointer_expression "*(uint *)(pcVar6 + 0x20)" (* "*") (cast_expression "(uint *)(pcVar6 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 0x20)" (( "(") (binary_expression "pcVar6 + 0x20" (identifier "pcVar6") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);" (assignment_expression "local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1)" (identifier "local_a4") (= "=") (cast_expression "(uint *)CONCAT22(local_a4._2_2_,uVar1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT22(local_a4._2_2_,uVar1)" (identifier "CONCAT22") (argument_list "(local_a4._2_2_,uVar1)" (( "(") (field_expression "local_a4._2_2_" (identifier "local_a4") (. ".") (field_identifier "_2_2_")) (, ",") (identifier "uVar1") () ")"))))) (; ";")) (expression_statement "local_ac = local_44;" (assignment_expression "local_ac = local_44" (identifier "local_ac") (= "=") (identifier "local_44")) (; ";")) (expression_statement "pcVar17 = local_b4 + -(int)local_44;" (assignment_expression "pcVar17 = local_b4 + -(int)local_44" (identifier "pcVar17") (= "=") (binary_expression "local_b4 + -(int)local_44" (identifier "local_b4") (+ "+") (unary_expression "-(int)local_44" (- "-") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))))) (; ";")) (expression_statement "uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);" (assignment_expression "uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44)" (identifier "uVar15") (= "=") (binary_expression "(local_b0 - local_40) - (uint)(local_b4 < local_44)" (parenthesized_expression "(local_b0 - local_40)" (( "(") (binary_expression "local_b0 - local_40" (identifier "local_b0") (- "-") (identifier "local_40")) () ")")) (- "-") (call_expression "(uint)(local_b4 < local_44)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_b4 < local_44)" (( "(") (binary_expression "local_b4 < local_44" (identifier "local_b4") (< "<") (identifier "local_44")) () ")"))))) (; ";")) (expression_statement "local_bc = local_48;" (assignment_expression "local_bc = local_48" (identifier "local_bc") (= "=") (identifier "local_48")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar1 == 0) {\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }\n              else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }" (if "if") (parenthesized_expression "(uVar1 == 0)" (( "(") (binary_expression "uVar1 == 0" (identifier "uVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                pcVar11 = local_b4;\n                if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }\n              }" ({ "{") (expression_statement "pcVar11 = local_b4;" (assignment_expression "pcVar11 = local_b4" (identifier "pcVar11") (= "=") (identifier "local_b4")) (; ";")) (if_statement "if (uVar15 < (pcVar17 < local_48)) {\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }" (if "if") (parenthesized_expression "(uVar15 < (pcVar17 < local_48))" (( "(") (binary_expression "uVar15 < (pcVar17 < local_48)" (identifier "uVar15") (< "<") (parenthesized_expression "(pcVar17 < local_48)" (( "(") (binary_expression "pcVar17 < local_48" (identifier "pcVar17") (< "<") (identifier "local_48")) () ")"))) () ")")) (compound_statement "{\nLAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));\n                  uVar31 = (*(code *)*local_78)();\n                  uVar15 = (uint)(uVar31 >> 0x20);\n                  local_a4 = (uint *)uVar31;\n                  puVar10 = &UNK_00050218 + unaff_EBP;\n                  if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }\n                  uVar18 = uVar15 >> 0x10;\n                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);\n                  if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }\n                  goto LAB_0002cbe7;\n                }" ({ "{") (labeled_statement "LAB_0002cb5e:\n                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));" (statement_identifier "LAB_0002cb5e") (: ":") (expression_statement "local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));" (assignment_expression "local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44))" (identifier "local_bc") (= "=") (cast_expression "(code *)((int)local_4c + ((int)pcVar11 - (int)local_44))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_4c + ((int)pcVar11 - (int)local_44))" (( "(") (binary_expression "(int)local_4c + ((int)pcVar11 - (int)local_44)" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (+ "+") (parenthesized_expression "((int)pcVar11 - (int)local_44)" (( "(") (binary_expression "(int)pcVar11 - (int)local_44" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))) () ")"))) () ")")))) (; ";"))) (expression_statement "uVar31 = (*(code *)*local_78)();" (assignment_expression "uVar31 = (*(code *)*local_78)()" (identifier "uVar31") (= "=") (call_expression "(*(code *)*local_78)()" (parenthesized_expression "(*(code *)*local_78)" (( "(") (pointer_expression "*(code *)*local_78" (* "*") (cast_expression "(code *)*local_78" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_78" (* "*") (identifier "local_78")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar15 = (uint)(uVar31 >> 0x20);" (assignment_expression "uVar15 = (uint)(uVar31 >> 0x20)" (identifier "uVar15") (= "=") (call_expression "(uint)(uVar31 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar31 >> 0x20)" (( "(") (binary_expression "uVar31 >> 0x20" (identifier "uVar31") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_a4 = (uint *)uVar31;" (assignment_expression "local_a4 = (uint *)uVar31" (identifier "local_a4") (= "=") (cast_expression "(uint *)uVar31" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar31"))) (; ";")) (expression_statement "puVar10 = &UNK_00050218 + unaff_EBP;" (assignment_expression "puVar10 = &UNK_00050218 + unaff_EBP" (identifier "puVar10") (= "=") (binary_expression "&UNK_00050218 + unaff_EBP" (pointer_expression "&UNK_00050218" (& "&") (identifier "UNK_00050218")) (+ "+") (identifier "unaff_EBP"))) (; ";")) (if_statement "if ((uVar31 & 0x100000000) != 0) {\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }" (if "if") (parenthesized_expression "((uVar31 & 0x100000000) != 0)" (( "(") (binary_expression "(uVar31 & 0x100000000) != 0" (parenthesized_expression "(uVar31 & 0x100000000)" (( "(") (binary_expression "uVar31 & 0x100000000" (identifier "uVar31") (& "&") (number_literal "0x100000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);\n                  }" ({ "{") (expression_statement "puVar10 = (undefined *)(unaff_EBP + 0x4ce56);" (assignment_expression "puVar10 = (undefined *)(unaff_EBP + 0x4ce56)" (identifier "puVar10") (= "=") (cast_expression "(undefined *)(unaff_EBP + 0x4ce56)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x4ce56)" (( "(") (binary_expression "unaff_EBP + 0x4ce56" (identifier "unaff_EBP") (+ "+") (number_literal "0x4ce56")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar18 = uVar15 >> 0x10;" (assignment_expression "uVar18 = uVar15 >> 0x10" (identifier "uVar18") (= "=") (binary_expression "uVar15 >> 0x10" (identifier "uVar15") (>> ">>") (number_literal "0x10"))) (; ";")) (expression_statement "printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);" (call_expression "printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10)" (identifier "printf") (argument_list "((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10)" (( "(") (cast_expression "(char *)(unaff_EBP + 0x578d3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x578d3)" (( "(") (binary_expression "unaff_EBP + 0x578d3" (identifier "unaff_EBP") (+ "+") (number_literal "0x578d3")) () ")"))) (, ",") (identifier "uVar18") (, ",") (binary_expression "uVar15 & 0xffff" (identifier "uVar15") (& "&") (number_literal "0xffff")) (, ",") (identifier "puVar10") () ")"))) (; ";")) (if_statement "if (uVar18 == 1) {\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }\n                  else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }" (if "if") (parenthesized_expression "(uVar18 == 1)" (( "(") (binary_expression "uVar18 == 1" (identifier "uVar18") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                    local_64 = 0;\n                    pcVar17 = local_48 + (int)local_4c;\n                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }\n                    pcVar11 = local_bc + 8;\n                    while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }\n                  }" ({ "{") (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar17 = local_48 + (int)local_4c;" (assignment_expression "pcVar17 = local_48 + (int)local_4c" (identifier "pcVar17") (= "=") (binary_expression "local_48 + (int)local_4c" (identifier "local_48") (+ "+") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")))) (; ";")) (if_statement "if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }" (if "if") (parenthesized_expression "(local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c)" (( "(") (binary_expression "local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c" (binary_expression "local_bc + (int)local_a4 * *local_c0 + 8" (binary_expression "local_bc + (int)local_a4 * *local_c0" (identifier "local_bc") (+ "+") (binary_expression "(int)local_a4 * *local_c0" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (* "*") (pointer_expression "*local_c0" (* "*") (identifier "local_c0")))) (+ "+") (number_literal "8")) (< "<") (binary_expression "local_48 + (int)local_4c" (identifier "local_48") (+ "+") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")))) () ")")) (compound_statement "{\n                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;\n                    }" ({ "{") (expression_statement "pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;" (assignment_expression "pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8" (identifier "pcVar17") (= "=") (binary_expression "local_bc + (int)local_a4 * *local_c0 + 8" (binary_expression "local_bc + (int)local_a4 * *local_c0" (identifier "local_bc") (+ "+") (binary_expression "(int)local_a4 * *local_c0" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (* "*") (pointer_expression "*local_c0" (* "*") (identifier "local_c0")))) (+ "+") (number_literal "8"))) (; ";")) (} "}"))) (expression_statement "pcVar11 = local_bc + 8;" (assignment_expression "pcVar11 = local_bc + 8" (identifier "pcVar11") (= "=") (binary_expression "local_bc + 8" (identifier "local_bc") (+ "+") (number_literal "8"))) (; ";")) (while_statement "while (pcVar11 < pcVar17) {\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }" (while "while") (parenthesized_expression "(pcVar11 < pcVar17)" (( "(") (binary_expression "pcVar11 < pcVar17" (identifier "pcVar11") (< "<") (identifier "pcVar17")) () ")")) (compound_statement "{\n                      local_bc = pcVar6;\n                      pcVar11 = (code *)FUN_0004c6d0();\n                      pcVar6 = local_bc;\n                    }" ({ "{") (expression_statement "local_bc = pcVar6;" (assignment_expression "local_bc = pcVar6" (identifier "local_bc") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "pcVar11 = (code *)FUN_0004c6d0();" (assignment_expression "pcVar11 = (code *)FUN_0004c6d0()" (identifier "pcVar11") (= "=") (cast_expression "(code *)FUN_0004c6d0()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0004c6d0()" (identifier "FUN_0004c6d0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar6 = local_bc;" (assignment_expression "pcVar6 = local_bc" (identifier "pcVar6") (= "=") (identifier "local_bc")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }" (else "else") (compound_statement "{\n                    pcVar7 = (char *)dcgettext();\n                    printf(pcVar7);\n                  }" ({ "{") (expression_statement "pcVar7 = (char *)dcgettext();" (assignment_expression "pcVar7 = (char *)dcgettext()" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" (identifier "printf") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0002cbe7;" (goto "goto") (statement_identifier "LAB_0002cbe7") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }" (else "else") (compound_statement "{\n                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);\n                uVar18 = *(uint *)(iVar12 + 0x10);\n                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }\n              }" ({ "{") (expression_statement "iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);" (assignment_expression "iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c)" (identifier "iVar12") (= "=") (binary_expression "(uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c)" (binary_expression "(uint)uVar1 * 0x48" (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")) (* "*") (number_literal "0x48")) (+ "+") (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))))) (; ";")) (expression_statement "uVar18 = *(uint *)(iVar12 + 0x10);" (assignment_expression "uVar18 = *(uint *)(iVar12 + 0x10)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x10)" (* "*") (cast_expression "(uint *)(iVar12 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)) {\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }" (if "if") (parenthesized_expression "(uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48))" (( "(") (binary_expression "uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <\n                    (uint)(pcVar17 + uVar18 < local_48)" (binary_expression "uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18)" (binary_expression "uVar15 + *(int *)(iVar12 + 0x14)" (identifier "uVar15") (+ "+") (pointer_expression "*(int *)(iVar12 + 0x14)" (* "*") (cast_expression "(int *)(iVar12 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x14)" (( "(") (binary_expression "iVar12 + 0x14" (identifier "iVar12") (+ "+") (number_literal "0x14")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4((uint)pcVar17,uVar18)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4((uint)pcVar17,uVar18)" (identifier "CARRY4") (argument_list "((uint)pcVar17,uVar18)" (( "(") (cast_expression "(uint)pcVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar17")) (, ",") (identifier "uVar18") () ")"))))) (< "<") (call_expression "(uint)(pcVar17 + uVar18 < local_48)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar17 + uVar18 < local_48)" (( "(") (binary_expression "pcVar17 + uVar18 < local_48" (binary_expression "pcVar17 + uVar18" (identifier "pcVar17") (+ "+") (identifier "uVar18")) (< "<") (identifier "local_48")) () ")")))) () ")")) (compound_statement "{\n                  pcVar11 = local_b4 + uVar18;\n                  goto LAB_0002cb5e;\n                }" ({ "{") (expression_statement "pcVar11 = local_b4 + uVar18;" (assignment_expression "pcVar11 = local_b4 + uVar18" (identifier "pcVar11") (= "=") (binary_expression "local_b4 + uVar18" (identifier "local_b4") (+ "+") (identifier "uVar18"))) (; ";")) (goto_statement "goto LAB_0002cb5e;" (goto "goto") (statement_identifier "LAB_0002cb5e") (; ";")) (} "}"))) (} "}")))) (expression_statement "dcgettext();" (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "warn();" (call_expression "warn()" (identifier "warn") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0002cbe7:\n            pcVar6 = pcVar6 + 0x24;" (statement_identifier "LAB_0002cbe7") (: ":") (expression_statement "pcVar6 = pcVar6 + 0x24;" (assignment_expression "pcVar6 = pcVar6 + 0x24" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + 0x24" (identifier "pcVar6") (+ "+") (number_literal "0x24"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(pcVar6 < local_54 + local_50 * 0x24)" (( "(") (binary_expression "pcVar6 < local_54 + local_50 * 0x24" (identifier "pcVar6") (< "<") (binary_expression "local_54 + local_50 * 0x24" (identifier "local_54") (+ "+") (binary_expression "local_50 * 0x24" (identifier "local_50") (* "*") (number_literal "0x24")))) () ")")) (; ";")) (} "}"))) (expression_statement "free(local_2c);" (call_expression "free(local_2c)" (identifier "free") (argument_list "(local_2c)" (( "(") (identifier "local_2c") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }" (else "else") (compound_statement "{\n    puVar14 = *(uint **)(param_1 + 0x60);\n    if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }\n    iVar12 = FUN_000269d0();\n    if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }\n  }" ({ "{") (expression_statement "puVar14 = *(uint **)(param_1 + 0x60);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x60)" (identifier "puVar14") (= "=") (pointer_expression "*(uint **)(param_1 + 0x60)" (* "*") (cast_expression "(uint **)(param_1 + 0x60)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (if_statement "if (puVar14 != (uint *)0x0) {\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }" (if "if") (parenthesized_expression "(puVar14 != (uint *)0x0)" (( "(") (binary_expression "puVar14 != (uint *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002bfdd:\n      local_b0 = local_a4[9];\n      local_b4 = (code *)local_a4[8];\n      puVar13 = puVar14 + iVar12 * 0xe;\n      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }\n      goto LAB_0002c050;\n    }" ({ "{") (labeled_statement "LAB_0002bfdd:\n      local_b0 = local_a4[9];" (statement_identifier "LAB_0002bfdd") (: ":") (expression_statement "local_b0 = local_a4[9];" (assignment_expression "local_b0 = local_a4[9]" (identifier "local_b0") (= "=") (subscript_expression "local_a4[9]" (identifier "local_a4") ([ "[") (number_literal "9") (] "]"))) (; ";"))) (expression_statement "local_b4 = (code *)local_a4[8];" (assignment_expression "local_b4 = (code *)local_a4[8]" (identifier "local_b4") (= "=") (cast_expression "(code *)local_a4[8]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_a4[8]" (identifier "local_a4") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "puVar13 = puVar14 + iVar12 * 0xe;" (assignment_expression "puVar13 = puVar14 + iVar12 * 0xe" (identifier "puVar13") (= "=") (binary_expression "puVar14 + iVar12 * 0xe" (identifier "puVar14") (+ "+") (binary_expression "iVar12 * 0xe" (identifier "iVar12") (* "*") (number_literal "0xe")))) (; ";")) (for_statement "for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }" (for "for") (( "(") (; ";") (comma_expression "uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13" (assignment_expression "uVar15 = local_3c" (identifier "uVar15") (= "=") (identifier "local_3c")) (, ",") (comma_expression "uVar18 = local_38, puVar14 < puVar13" (assignment_expression "uVar18 = local_38" (identifier "uVar18") (= "=") (identifier "local_38")) (, ",") (binary_expression "puVar14 < puVar13" (identifier "puVar14") (< "<") (identifier "puVar13")))) (; ";") (assignment_expression "puVar14 = puVar14 + 0xe" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 0xe" (identifier "puVar14") (+ "+") (number_literal "0xe"))) () ")") (compound_statement "{\n        local_c4 = (code *)puVar13;\n        if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }\n      }" ({ "{") (expression_statement "local_c4 = (code *)puVar13;" (assignment_expression "local_c4 = (code *)puVar13" (identifier "local_c4") (= "=") (cast_expression "(code *)puVar13" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13"))) (; ";")) (if_statement "if (*puVar14 == 1) {\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }" (if "if") (parenthesized_expression "(*puVar14 == 1)" (( "(") (binary_expression "*puVar14 == 1" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          uVar15 = puVar14[4];\n          uVar18 = puVar14[5];\n          uVar21 = local_a4[5];\n          uVar3 = local_a4[4];\n          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }\n        }" ({ "{") (expression_statement "uVar15 = puVar14[4];" (assignment_expression "uVar15 = puVar14[4]" (identifier "uVar15") (= "=") (subscript_expression "puVar14[4]" (identifier "puVar14") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar18 = puVar14[5];" (assignment_expression "uVar18 = puVar14[5]" (identifier "uVar18") (= "=") (subscript_expression "puVar14[5]" (identifier "puVar14") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar21 = local_a4[5];" (assignment_expression "uVar21 = local_a4[5]" (identifier "uVar21") (= "=") (subscript_expression "local_a4[5]" (identifier "local_a4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar3 = local_a4[4];" (assignment_expression "uVar3 = local_a4[4]" (identifier "uVar3") (= "=") (subscript_expression "local_a4[4]" (identifier "local_a4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }" (if "if") (parenthesized_expression "(uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18)" (( "(") (binary_expression "uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18" (binary_expression "uVar18 <= uVar21" (identifier "uVar18") (<= "<=") (identifier "uVar21")) (&& "&&") (binary_expression "(uint)(uVar3 < uVar15) <= uVar21 - uVar18" (call_expression "(uint)(uVar3 < uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 < uVar15)" (( "(") (binary_expression "uVar3 < uVar15" (identifier "uVar3") (< "<") (identifier "uVar15")) () ")"))) (<= "<=") (binary_expression "uVar21 - uVar18" (identifier "uVar21") (- "-") (identifier "uVar18")))) () ")")) (compound_statement "{\n            local_bc = local_b4 + uVar3;\n            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);\n            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);\n            if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;\n          }" ({ "{") (expression_statement "local_bc = local_b4 + uVar3;" (assignment_expression "local_bc = local_b4 + uVar3" (identifier "local_bc") (= "=") (binary_expression "local_b4 + uVar3" (identifier "local_b4") (+ "+") (identifier "uVar3"))) (; ";")) (expression_statement "local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);" (assignment_expression "local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4)" (identifier "local_b8") (= "=") (binary_expression "uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4)" (binary_expression "uVar21 + local_b0" (identifier "uVar21") (+ "+") (identifier "local_b0")) (+ "+") (cast_expression "(uint)CARRY4(uVar3,(uint)local_b4)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar3,(uint)local_b4)" (identifier "CARRY4") (argument_list "(uVar3,(uint)local_b4)" (( "(") (identifier "uVar3") (, ",") (cast_expression "(uint)local_b4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b4")) () ")")))))) (; ";")) (expression_statement "uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);" (assignment_expression "uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10])" (identifier "uVar21") (= "=") (binary_expression "uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10])" (binary_expression "uVar18 + puVar14[0xb]" (identifier "uVar18") (+ "+") (subscript_expression "puVar14[0xb]" (identifier "puVar14") ([ "[") (number_literal "0xb") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(uVar15,puVar14[10])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar15,puVar14[10])" (identifier "CARRY4") (argument_list "(uVar15,puVar14[10])" (( "(") (identifier "uVar15") (, ",") (subscript_expression "puVar14[10]" (identifier "puVar14") ([ "[") (number_literal "10") (] "]")) () ")")))))) (; ";")) (if_statement "if (local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;" (if "if") (parenthesized_expression "(local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8)" (( "(") (binary_expression "local_b8 <= uVar21 &&\n                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8" (binary_expression "local_b8 <= uVar21" (identifier "local_b8") (<= "<=") (identifier "uVar21")) (&& "&&") (binary_expression "(uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8" (call_expression "(uint)((code *)(uVar15 + puVar14[10]) < local_bc)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((code *)(uVar15 + puVar14[10]) < local_bc)" (( "(") (binary_expression "(code *)(uVar15 + puVar14[10]) < local_bc" (cast_expression "(code *)(uVar15 + puVar14[10])" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar15 + puVar14[10])" (( "(") (binary_expression "uVar15 + puVar14[10]" (identifier "uVar15") (+ "+") (subscript_expression "puVar14[10]" (identifier "puVar14") ([ "[") (number_literal "10") (] "]"))) () ")"))) (< "<") (identifier "local_bc")) () ")"))) (<= "<=") (binary_expression "uVar21 - local_b8" (identifier "uVar21") (- "-") (identifier "local_b8")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (} "}"))) (goto_statement "goto LAB_0002c050;" (goto "goto") (statement_identifier "LAB_0002c050") (; ";")) (} "}"))) (expression_statement "iVar12 = FUN_000269d0();" (assignment_expression "iVar12 = FUN_000269d0()" (identifier "iVar12") (= "=") (call_expression "FUN_000269d0()" (identifier "FUN_000269d0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar14 = *(uint **)(param_1 + 0x60);\n      iVar12 = *(int *)(param_1 + 0x4c);\n      goto LAB_0002bfdd;\n    }" ({ "{") (expression_statement "puVar14 = *(uint **)(param_1 + 0x60);" (assignment_expression "puVar14 = *(uint **)(param_1 + 0x60)" (identifier "puVar14") (= "=") (pointer_expression "*(uint **)(param_1 + 0x60)" (* "*") (cast_expression "(uint **)(param_1 + 0x60)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "iVar12 = *(int *)(param_1 + 0x4c);" (assignment_expression "iVar12 = *(int *)(param_1 + 0x4c)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002bfdd;" (goto "goto") (statement_identifier "LAB_0002bfdd") (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_54 != (code *)0x0) {\n    free(local_54);\n  }" (if "if") (parenthesized_expression "(local_54 != (code *)0x0)" (( "(") (binary_expression "local_54 != (code *)0x0" (identifier "local_54") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free(local_54);\n  }" ({ "{") (expression_statement "free(local_54);" (call_expression "free(local_54)" (identifier "free") (argument_list "(local_54)" (( "(") (identifier "local_54") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0002c236:\n  if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }" (statement_identifier "LAB_0002c236") (: ":") (if_statement "if (local_4c != (void *)0x0) {\n    free(local_4c);\n  }" (if "if") (parenthesized_expression "(local_4c != (void *)0x0)" (( "(") (binary_expression "local_4c != (void *)0x0" (identifier "local_4c") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free(local_4c);\n  }" ({ "{") (expression_statement "free(local_4c);" (call_expression "free(local_4c)" (identifier "free") (argument_list "(local_4c)" (( "(") (identifier "local_4c") () ")"))) (; ";")) (} "}")))) (expression_statement "local_54 = (code *)0x0;" (assignment_expression "local_54 = (code *)0x0" (identifier "local_54") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_4c = (void *)0x0;" (assignment_expression "local_4c = (void *)0x0" (identifier "local_4c") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "joined_r0x0002c26e:\n  local_90 = local_90 + -1;" (statement_identifier "joined_r0x0002c26e") (: ":") (expression_statement "local_90 = local_90 + -1;" (assignment_expression "local_90 = local_90 + -1" (identifier "local_90") (= "=") (binary_expression "local_90 + -1" (identifier "local_90") (+ "+") (number_literal "-1"))) (; ";"))) (if_statement "if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;" (if "if") (parenthesized_expression "(local_90 == (byte *)0xffffffff)" (( "(") (binary_expression "local_90 == (byte *)0xffffffff" (identifier "local_90") (== "==") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (goto_statement "goto LAB_0002c274;" (goto "goto") (statement_identifier "LAB_0002c274") (; ";"))) (expression_statement "piVar8 = *(int **)(param_1 + 0x54);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x54)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x54)" (* "*") (cast_expression "(int **)(param_1 + 0x54)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002bbd0;" (goto "goto") (statement_identifier "LAB_0002bbd0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Unknown calling convention */

type_1 function_1(type_2 *filedata)

{
  type_3 *pbVar1;
  int *piVar2;
  type_4 var_62;
  type_5 *pEVar4;
  type_6 var_65;
  type_7 *var_15;
  type_8 *var_29;
  type_9 addr;
  type_9 *paVar8;
  type_2 *var_41;
  type_3 bVar9;
  type_10 uVar10;
  type_10 uVar11;
  type_11 *puVar12;
  char *var_17;
  type_12 *var_19;
  type_10 *var_34;
  type_13 *var_38;
  type_1 var_43;
  char *var_22;
  int var_1;
  type_6 var_2;
  type_5 *var_4;
  type_14 *var_28;
  type_15 *var_54;
  type_10 *var_37;
  type_15 *pEVar25;
  type_12 *var_24;
  type_16 *var_66;
  type_12 *var_18;
  size_t var_53;
  type_17 *piVar30;
  type_6 var_3;
  type_12 *var_26;
  type_16 *var_67;
  type_6 var_63;
  type_6 var_68;
  int iVar36;
  type_8 uVar37;
  bool var_20;
  type_8 uVar39;
  bool var_47;
  type_12 bVar41;
  type_18 var_39;
  type_19 var_49;
  type_11 *puVar44;
  type_20 uVar45;
  type_7 *__stream;
  type_3 in_stack_ffffff34;
  type_5 *var_12;
  type_6 var_16;
  void *var_51;
  type_12 *var_21;
  type_15 *var_46;
  char *local_a0;
  type_6 var_13;
  int var_70;
  type_1 local_70;
  int in_body;
  char *var_58;
  type_3 offset;
  type_17 aux;
  
  bVar41 = 0;
  local_70 = 1;
  piVar30 = &aux;
  for (var_1 = 0xe; var_1 != 0; var_1 = var_1 + -1) {
    piVar30->table = (type_13 *)0x0;
    piVar30 = (type_17 *)&piVar30->table_len;
  }
  var_2 = (filedata->file_header).e_shnum;
  var_4 = filedata->section_headers;
  if (var_2 != 0) {
    var_12 = (type_5 *)0x0;
    var_3 = 0;
    do {
      while (var_4->sh_type != 2) {
        var_12 = (type_5 *)((int)var_12 + (type_6)(var_4->sh_type == 0x70000001));
LAB_0002baa7:
        var_3 = var_3 + 1;
        var_4 = var_4 + 1;
        if (var_2 <= var_3) goto LAB_0002bbaa;
      }
      if (var_2 <= var_4->sh_link) goto LAB_0002baa7;
      if (var_5 == 0) {
        aux.symtab = var_6(filedata,var_4,&aux.nsyms);
      }
      else {
        aux.symtab = var_7(filedata,var_4,&aux.nsyms);
      }
      var_2 = var_4->sh_link;
      pEVar4 = filedata->section_headers;
      if (aux.strtab != (char *)0x0) {
        var_17 = (char *)var_8();
        var_9(var_17);
        var_10(aux.strtab);
        local_70 = 0;
      }
      var_17 = (char *)var_8();
      aux.strtab = (char *)var_11((void *)0x0,filedata,(type_21)pEVar4[var_2].sh_offset,1,
                                    pEVar4[var_2].sh_size,var_17);
      aux.strtab_size = 0;
      if (aux.strtab != (char *)0x0) {
        aux.strtab_size = (type_21)pEVar4[var_2].sh_size;
      }
      var_3 = var_3 + 1;
      var_4 = var_4 + 1;
      var_2 = (filedata->file_header).e_shnum;
    } while (var_3 < var_2);
LAB_0002bbaa:
    var_13 = 0;
    var_4 = var_12;
    if (var_12 != (type_5 *)0x0) {
LAB_0002bbd0:
      var_70 = (int)var_4 + -1;
      var_12 = filedata->section_headers;
      if (var_2 <= var_13) {
LAB_0002bc1b:
                    /* WARNING: Subroutine does not return */
        var_14("unwsec != NULL","../../binutils/readelf.c",0x1df7,"ia64_process_unwind");
      }
      var_15 = ((type_2 *)(var_12 + var_13))->handle;
      var_41 = (type_2 *)(var_12 + var_13);
      var_16 = var_13;
      while (var_15 != (type_7 *)0x70000001) {
        var_16 = var_16 + 1;
        if (var_16 == var_2) goto LAB_0002bc1b;
        var_15 = (type_7 *)(var_41->file_header).e_phnum;
        var_41 = (type_2 *)&(var_41->file_header).e_phentsize;
      }
      var_13 = var_16 + 1;
      if ((var_41->file_size & 0x200) == 0) {
        var_17 = filedata->string_table;
        if (var_17 == (char *)0x0) {
LAB_0002c92b:
          var_18 = (type_12 *)var_8();
          var_1 = 0x16;
          var_20 = (type_8 *)0xffffffef < &stack0xffffff24;
          var_47 = &stack0x00000000 == (type_8 *)0xcc;
          var_19 = (type_12 *)".gnu.linkonce.ia64unw.";
          do {
            if (var_1 == 0) break;
            var_1 = var_1 + -1;
            var_20 = *var_18 < *var_19;
            var_47 = *var_18 == *var_19;
            var_18 = var_18 + (type_6)bVar41 * -2 + 1;
            var_19 = var_19 + (type_6)bVar41 * -2 + 1;
          } while (var_47);
          var_17 = filedata->string_table;
          if ((!var_20 && !var_47) == var_20) {
            if ((var_17 == (char *)0x0) ||
               ((char *)filedata->string_table_length <= var_41->file_name)) {
              var_18 = (type_12 *)var_8();
              var_12 = filedata->section_headers;
            }
            else {
              var_18 = (type_12 *)(var_17 + (int)var_41->file_name);
              var_12 = filedata->section_headers;
            }
            goto LAB_0002bd4e;
          }
          if (var_17 != (char *)0x0) {
            var_22 = var_41->file_name;
            goto LAB_0002c5fe;
          }
LAB_0002c9ae:
          var_18 = (type_12 *)var_8();
          var_1 = 0xd;
          var_20 = (type_8 *)0xffffffef < &stack0xffffff24;
          var_47 = &stack0x00000000 == (type_8 *)0xcc;
          var_19 = (type_12 *)".IA_64.unwind";
          do {
            if (var_1 == 0) break;
            var_1 = var_1 + -1;
            var_20 = *var_18 < *var_19;
            var_47 = *var_18 == *var_19;
            var_18 = var_18 + (type_6)bVar41 * -2 + 1;
            var_19 = var_19 + (type_6)bVar41 * -2 + 1;
          } while (var_47);
          if ((!var_20 && !var_47) == var_20) {
            if ((filedata->string_table == (char *)0x0) ||
               ((char *)filedata->string_table_length <= var_41->file_name)) {
              var_21 = (type_12 *)var_8();
            }
            else {
              var_21 = (type_12 *)(filedata->string_table + (int)var_41->file_name);
            }
LAB_0002ca17:
            var_21 = var_21 + 0xd;
          }
          else {
LAB_0002c62d:
            var_21 = &DAT_0007bc55;
          }
          var_12 = filedata->section_headers;
          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;
          var_17 = ".IA_64.unwind_info";
          var_16 = 0;
          do {
            if (var_12 == (type_5 *)0x0) {
              uVar37 = &stack0xffffff34 < (type_8 *)0x4;
              uVar39 = &stack0x00000000 == (type_8 *)0xd0;
              var_18 = (type_12 *)var_8();
              var_1 = 0x12;
              var_19 = (type_12 *)var_17;
              do {
                if (var_1 == 0) break;
                var_1 = var_1 + -1;
                uVar37 = *var_18 < *var_19;
                uVar39 = *var_18 == *var_19;
                var_18 = var_18 + (type_6)bVar41 * -2 + 1;
                var_19 = var_19 + (type_6)bVar41 * -2 + 1;
              } while ((bool)uVar39);
              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {
                var_18 = (type_12 *)var_8();
                goto LAB_0002c699;
              }
            }
            else {
              var_22 = filedata->string_table;
              if ((var_22 == (char *)0x0) ||
                 (var_2 = var_12->sh_name, filedata->string_table_length <= var_2)) {
                var_18 = (type_12 *)var_8();
                var_20 = (type_8 *)0xffffffef < &stack0xffffff24;
                var_47 = &stack0x00000000 == (type_8 *)0xcc;
                var_1 = 0x12;
                var_19 = (type_12 *)var_17;
                do {
                  if (var_1 == 0) break;
                  var_1 = var_1 + -1;
                  var_20 = *var_18 < *var_19;
                  var_47 = *var_18 == *var_19;
                  var_18 = var_18 + (type_6)bVar41 * -2 + 1;
                  var_19 = var_19 + (type_6)bVar41 * -2 + 1;
                } while (var_47);
                if ((!var_20 && !var_47) == var_20) {
                  if (filedata->string_table == (char *)0x0) {
                    var_18 = (type_12 *)var_8();
                  }
                  else if (var_12->sh_name < filedata->string_table_length) {
                    var_18 = (type_12 *)(filedata->string_table + var_12->sh_name);
                  }
                  else {
                    var_18 = (type_12 *)var_8();
                  }
                  goto LAB_0002c699;
                }
              }
              else {
                var_20 = var_23((type_6)var_22,var_2);
                var_18 = (type_12 *)(var_22 + var_2);
                var_47 = var_18 == (type_12 *)0x0;
                var_1 = 0x12;
                var_19 = var_18;
                var_24 = (type_12 *)var_17;
                do {
                  if (var_1 == 0) break;
                  var_1 = var_1 + -1;
                  var_20 = *var_19 < *var_24;
                  var_47 = *var_19 == *var_24;
                  var_19 = var_19 + (type_6)bVar41 * -2 + 1;
                  var_24 = var_24 + (type_6)bVar41 * -2 + 1;
                } while (var_47);
                if ((!var_20 && !var_47) == var_20) {
LAB_0002c699:
                  var_1 = var_25((char *)(var_18 + 0x12),(char *)var_21);
                  if (var_1 == 0) goto LAB_0002be90;
                }
              }
            }
            var_16 = var_16 + 1;
            var_12 = var_12 + 1;
            var_2 = (filedata->file_header).e_shnum;
          } while (var_16 < var_2);
        }
        else {
          var_22 = var_41->file_name;
          var_20 = var_22 < (char *)filedata->string_table_length;
          var_47 = var_22 == (char *)filedata->string_table_length;
          if (!var_20) goto LAB_0002c92b;
          var_18 = (type_12 *)(var_17 + (int)var_22);
          var_1 = 0x16;
          var_19 = var_18;
          var_24 = (type_12 *)".gnu.linkonce.ia64unw.";
          do {
            if (var_1 == 0) break;
            var_1 = var_1 + -1;
            var_20 = *var_19 < *var_24;
            var_47 = *var_19 == *var_24;
            var_19 = var_19 + (type_6)bVar41 * -2 + 1;
            var_24 = var_24 + (type_6)bVar41 * -2 + 1;
          } while (var_47);
          if ((!var_20 && !var_47) != var_20) {
LAB_0002c5fe:
            if ((char *)filedata->string_table_length <= var_22) goto LAB_0002c9ae;
            var_20 = var_23((type_6)var_22,(type_6)var_17);
            var_21 = (type_12 *)(var_17 + (int)var_22);
            var_47 = var_21 == (type_12 *)0x0;
            var_1 = 0xd;
            var_18 = var_21;
            var_19 = (type_12 *)".IA_64.unwind";
            do {
              if (var_1 == 0) break;
              var_1 = var_1 + -1;
              var_20 = *var_18 < *var_19;
              var_47 = *var_18 == *var_19;
              var_18 = var_18 + (type_6)bVar41 * -2 + 1;
              var_19 = var_19 + (type_6)bVar41 * -2 + 1;
            } while (var_47);
            if ((!var_20 && !var_47) == var_20) goto LAB_0002ca17;
            goto LAB_0002c62d;
          }
LAB_0002bd4e:
          if ((filedata->file_header).e_shnum == 0) goto LAB_0002bc78;
          var_17 = ".gnu.linkonce.ia64unwi.";
          var_16 = 0;
          do {
            if (var_12 == (type_5 *)0x0) {
              uVar37 = &stack0xffffff34 < (type_8 *)0x4;
              uVar39 = &stack0x00000000 == (type_8 *)0xd0;
              var_19 = (type_12 *)var_8();
              var_1 = 0x17;
              var_24 = (type_12 *)var_17;
              do {
                if (var_1 == 0) break;
                var_1 = var_1 + -1;
                uVar37 = *var_19 < *var_24;
                uVar39 = *var_19 == *var_24;
                var_19 = var_19 + (type_6)bVar41 * -2 + 1;
                var_24 = var_24 + (type_6)bVar41 * -2 + 1;
              } while ((bool)uVar39);
              if ((!(bool)uVar37 && !(bool)uVar39) == (bool)uVar37) {
                var_19 = (type_12 *)var_8();
                goto LAB_0002bdb1;
              }
            }
            else {
              var_22 = filedata->string_table;
              if ((var_22 == (char *)0x0) ||
                 (var_2 = var_12->sh_name, filedata->string_table_length <= var_2)) {
                var_19 = (type_12 *)var_8();
                var_20 = (type_8 *)0xffffffef < &stack0xffffff24;
                var_47 = &stack0x00000000 == (type_8 *)0xcc;
                var_1 = 0x17;
                var_24 = (type_12 *)var_17;
                do {
                  if (var_1 == 0) break;
                  var_1 = var_1 + -1;
                  var_20 = *var_19 < *var_24;
                  var_47 = *var_19 == *var_24;
                  var_19 = var_19 + (type_6)bVar41 * -2 + 1;
                  var_24 = var_24 + (type_6)bVar41 * -2 + 1;
                } while (var_47);
                if ((!var_20 && !var_47) == var_20) {
                  if (filedata->string_table == (char *)0x0) {
                    var_19 = (type_12 *)var_8();
                  }
                  else if (var_12->sh_name < filedata->string_table_length) {
                    var_19 = (type_12 *)(filedata->string_table + var_12->sh_name);
                  }
                  else {
                    var_19 = (type_12 *)var_8();
                  }
                  goto LAB_0002bdb1;
                }
              }
              else {
                var_20 = var_23((type_6)var_22,var_2);
                var_19 = (type_12 *)(var_22 + var_2);
                var_47 = var_19 == (type_12 *)0x0;
                var_1 = 0x17;
                var_24 = var_19;
                var_26 = (type_12 *)var_17;
                do {
                  if (var_1 == 0) break;
                  var_1 = var_1 + -1;
                  var_20 = *var_24 < *var_26;
                  var_47 = *var_24 == *var_26;
                  var_24 = var_24 + (type_6)bVar41 * -2 + 1;
                  var_26 = var_26 + (type_6)bVar41 * -2 + 1;
                } while (var_47);
                if ((!var_20 && !var_47) == var_20) {
LAB_0002bdb1:
                  var_1 = var_25((char *)(var_19 + 0x17),(char *)(var_18 + 0x16));
                  if (var_1 == 0) goto LAB_0002be90;
                }
              }
            }
            var_16 = var_16 + 1;
            var_12 = var_12 + 1;
            var_2 = (filedata->file_header).e_shnum;
          } while (var_16 < var_2);
        }
        goto LAB_0002be9a;
      }
      if (((var_27 != (type_22 **)0x0) &&
          (var_27[var_16] != (type_22 *)0x0)) &&
         (var_28 = var_27[var_16]->root, var_28 != (type_14 *)0x0)) {
        do {
          var_12 = var_12 + var_28->section_index;
          if ((var_12 == (type_5 *)0x0) || (filedata->string_table == (char *)0x0)) {
LAB_0002c8dc:
            var_18 = (type_12 *)var_8();
            var_20 = (type_8 *)0xffffffef < &stack0xffffff24;
            var_29 = &stack0xffffff34;
          }
          else {
            var_2 = var_12->sh_name;
            var_18 = (type_12 *)(filedata->string_table + var_2);
            var_20 = var_2 < filedata->string_table_length;
            var_29 = (type_8 *)(var_2 - filedata->string_table_length);
            if (!var_20) goto LAB_0002c8dc;
          }
          var_47 = var_29 == (type_8 *)0x0;
          var_1 = 0x13;
          var_19 = (type_12 *)".IA_64.unwind_info";
          do {
            if (var_1 == 0) break;
            var_1 = var_1 + -1;
            var_20 = *var_18 < *var_19;
            var_47 = *var_18 == *var_19;
            var_18 = var_18 + (type_6)bVar41 * -2 + 1;
            var_19 = var_19 + (type_6)bVar41 * -2 + 1;
          } while (var_47);
          if ((!var_20 && !var_47) == var_20) goto LAB_0002be90;
          var_28 = var_28->next;
          if (var_28 == (type_14 *)0x0) break;
          var_12 = filedata->section_headers;
        } while( true );
      }
      goto LAB_0002bc78;
    }
  }
  var_17 = (char *)var_8();
  var_30(var_17);
LAB_0002c274:
  if (aux.symtab != (type_15 *)0x0) {
    var_10(aux.symtab);
  }
  if (aux.strtab != (char *)0x0) {
    var_10(aux.strtab);
  }
  return local_70;
LAB_0002be90:
  var_2 = (filedata->file_header).e_shnum;
LAB_0002be9a:
  if (var_16 == var_2) {
LAB_0002bc78:
    var_17 = (char *)var_8();
    var_30(var_17);
    if (filedata->string_table == (char *)0x0) {
      var_30("%d");
    }
    else {
      var_31
                ((type_2 *)&filedata->string_table,
                 (type_5 *)&filedata->string_table_length,var_41);
      var_30("\'%s\'");
    }
    if (var_4 == (type_5 *)0x1) goto LAB_0002c274;
    goto LAB_0002bce7;
  }
  aux.info_addr._0_4_ = (type_6)var_12->sh_addr;
  aux.info_addr._4_4_ = *(int *)((int)&var_12->sh_addr + 4);
  var_17 = (char *)var_8();
  aux.info = (type_10 *)var_11((void *)0x0,filedata,(type_21)var_12->sh_offset,1,var_12->sh_size,
                               var_17);
  aux.info_size = 0;
  if (aux.info != (type_10 *)0x0) {
    aux.info_size = (type_21)var_12->sh_size;
  }
  var_17 = (char *)var_8();
  var_30(var_17);
  if (filedata->string_table == (char *)0x0) {
    var_30("%d");
  }
  else {
    var_31
              ((type_2 *)&filedata->string_table,
               (type_5 *)&filedata->string_table_length,var_41);
    var_30("\'%s\'");
  }
  var_32();
  var_17 = (char *)var_8();
  var_30(var_17);
  aux.table_len = 0;
  var_2 = (filedata->file_header).e_phnum;
  if (var_2 == 0) {
    var_21 = (type_12 *)(var_41->file_header).e_entry;
    var_2 = (type_6)aux.seg_base;
    var_3 = aux.seg_base._4_4_;
LAB_0002c050:
    aux.seg_base._4_4_ = var_3;
    aux.seg_base._0_4_ = var_2;
    var_17 = (char *)var_8();
    var_34 = (type_10 *)var_11((void *)0x0,filedata,
                                *(type_21 *)((var_41->file_header).e_ident + 8),1,var_33(var_21)
                                ,var_17);
    if (var_34 != (type_10 *)0x0) {
      aux.table_len = (type_6)var_21 / (var_35 * 3);
      var_38 = (type_13 *)var_36(aux.table_len,0x24);
      var_2 = var_35;
      var_12 = (type_5 *)var_34;
      aux.table = var_38;
      if (!var_23((int)var_21 + var_35 * -3,(type_6)var_34)) {
        do {
          (var_38->start).section = 0;
          (var_38->end).section = 0;
          (var_38->info).section = 0;
          var_39 = (*byte_get)((type_10 *)var_12,var_2);
          (var_38->start).offset = var_39;
          var_37 = (type_10 *)((int)var_12 + var_35);
          var_39 = (*byte_get)(var_37,var_35);
          (var_38->end).offset = var_39;
          var_37 = var_37 + var_35;
          var_39 = (*byte_get)(var_37,var_35);
          var_2 = var_35;
          var_12 = (type_5 *)(var_37 + var_35);
          pbVar1 = &(var_38->start).offset;
          bVar9 = *pbVar1;
          *(type_6 *)pbVar1 = (int)*pbVar1 + (type_6)aux.seg_base;
          piVar2 = (int *)((int)&(var_38->start).offset + 4);
          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (type_6)var_23((type_6)bVar9,(type_6)aux.seg_base);
          pbVar1 = &(var_38->end).offset;
          bVar9 = *pbVar1;
          *(type_6 *)pbVar1 = (int)*pbVar1 + (type_6)aux.seg_base;
          piVar2 = (int *)((int)&(var_38->end).offset + 4);
          *piVar2 = *piVar2 + aux.seg_base._4_4_ + (type_6)var_23((type_6)bVar9,(type_6)aux.seg_base);
          paVar8 = &var_38->info;
          var_38 = var_38 + 1;
          paVar8->offset = var_39 + var_40(aux.seg_base._4_4_,(type_6)aux.seg_base);
        } while (var_12 <= var_34 + (int)var_21 + var_2 * -3);
      }
      var_10(var_34);
      var_4 = filedata->section_headers;
      var_2 = (filedata->file_header).e_shnum;
      var_12 = var_4;
      if (var_4 < var_4 + var_2) {
        do {
          if (((var_12->sh_type == 4) && (var_12->sh_info < var_2)) &&
             (var_41 == (type_2 *)(var_4 + var_12->sh_info))) {
            var_43 = var_42(filedata,(type_21)var_12->sh_offset,(type_21)var_12->sh_size,
                                       (type_23 **)&offset,(type_21 *)&var_58);
            if (var_43 == 0) {
              var_10(aux.table);
              aux.table = (type_13 *)0x0;
              aux.table_len = 0;
              goto LAB_0002c236;
            }
            local_a0 = var_58;
            var_21 = (type_12 *)(void *)offset;
            var_51 = (void *)offset;
            if ((void *)offset < (void *)((int)(void *)offset + (int)var_58 * 0x18)) {
              do {
                var_46 = aux.symtab;
                var_2 = *(type_6 *)((int)var_51 + 0xc);
                if (var_5 == 0) {
                  var_3 = var_44((type_2 *)&(filedata->file_header).e_machine,
                                          in_stack_ffffff34);
                  var_18 = (type_12 *)var_45(var_3);
                  var_20 = var_18 == (type_12 *)0x0;
                  if (var_20) goto LAB_0002c4e0;
LAB_0002c3b9:
                  var_46 = var_46 + var_2;
                  var_47 = false;
                  var_1 = 0xd;
                  var_19 = (type_12 *)"R_IA64_SEGREL";
                  do {
                    if (var_1 == 0) break;
                    var_1 = var_1 + -1;
                    var_47 = *var_18 < *var_19;
                    var_20 = *var_18 == *var_19;
                    var_18 = var_18 + (type_6)bVar41 * -2 + 1;
                    var_19 = var_19 + (type_6)bVar41 * -2 + 1;
                  } while (var_20);
                  if ((!var_47 && !var_20) != var_47) {
                    var_17 = (char *)var_8();
                    goto LAB_0002c4fb;
                  }
                  var_2 = var_32();
                  if (aux.table_len <= var_2) {
                    var_17 = (char *)var_8();
                    goto LAB_0002c4fb;
                  }
                  var_32();
                  var_49 = var_48();
                  var_38 = aux.table + var_2;
                  var_1 = *(type_6 *)((int)var_51 + 0x10) + (int)var_46->st_value;
                  iVar36 = *(int *)((int)var_51 + 0x14) + *(int *)((int)&var_46->st_value + 4) +
                           (type_6)var_23(*(type_6 *)((int)var_51 + 0x10),(type_6)var_46->st_value);
                  var_46._0_2_ = (type_4)var_46->st_shndx;
                  if (var_49 == 1) {
                    *(int *)&(var_38->end).offset = var_1;
                    *(int *)((int)&(var_38->end).offset + 4) = iVar36;
                    (var_38->end).section = (type_4)var_46;
                  }
                  else if (var_49 == 2) {
                    (var_38->info).section = (type_4)var_46;
                    *(int *)&(var_38->info).offset = var_1;
                    *(int *)((int)&(var_38->info).offset + 4) = iVar36;
                  }
                  else {
                    (var_38->start).section = (type_4)var_46;
                    *(int *)&(var_38->start).offset = var_1;
                    *(int *)((int)&(var_38->start).offset + 4) = iVar36;
                  }
                }
                else {
                  var_2 = *(type_6 *)((int)var_51 + 8) >> 8 | var_2 << 0x18;
                  var_18 = (type_12 *)var_45(*(type_6 *)((int)var_51 + 8) & 0xff);
                  var_20 = var_18 == (type_12 *)0x0;
                  if (!var_20) goto LAB_0002c3b9;
LAB_0002c4e0:
                  var_17 = (char *)var_8();
LAB_0002c4fb:
                  var_50(var_17);
                  var_21 = (type_12 *)(void *)offset;
                  local_a0 = var_58;
                }
                var_51 = (void *)((int)var_51 + 0x18);
              } while (var_51 < (void *)((int)var_21 + (int)local_a0 * 0x18));
            }
            var_10(var_21);
            var_4 = filedata->section_headers;
            var_2 = (filedata->file_header).e_shnum;
          }
          var_12 = var_12 + 1;
        } while (var_12 < var_4 + var_2);
      }
      if (aux.table_len != 0) {
        aux.funtab = (type_15 *)var_52(aux.nsyms * 0x1c);
        aux.nfuns = aux.nsyms;
        if (aux.nsyms != 0) {
          var_54 = aux.symtab;
          var_53 = 0;
          do {
            var_1 = (int)var_54->st_value;
            aux.nfuns = var_53;
            if ((var_1 != 0 || *(int *)((int)&var_54->st_value + 4) != 0) &&
               ((var_54->st_info & 0xf) == 2)) {
              aux.nfuns = var_53 + 1;
              pEVar25 = aux.funtab + var_53;
              *(int *)&pEVar25->st_value = var_1;
              *(type_20 *)((int)&pEVar25->st_value + 4) =
                   *(type_20 *)((int)&var_54->st_value + 4);
              *(int *)&pEVar25->st_size = (int)var_54->st_size;
              *(type_20 *)((int)&pEVar25->st_size + 4) =
                   *(type_20 *)((int)&var_54->st_size + 4);
              pEVar25->st_name = var_54->st_name;
              uVar10 = var_54->st_other;
              uVar11 = var_54->st_target_internal;
              uVar37 = var_54->field_0x17;
              pEVar25->st_info = var_54->st_info;
              pEVar25->st_other = uVar10;
              pEVar25->st_target_internal = uVar11;
              pEVar25->field_0x17 = uVar37;
              pEVar25->st_shndx = var_54->st_shndx;
            }
            var_54 = var_54 + 1;
            var_53 = aux.nfuns;
          } while (aux.symtab + aux.nsyms != var_54);
        }
        var_55(aux.funtab,aux.nfuns,0x1c,symcmp);
        puVar12 = PTR_stdout_000b3fd8;
        if (aux.table < aux.table + aux.table_len) {
          var_38 = aux.table;
          do {
            addr._2_2_ = 0;
            addr.section = (var_38->start).section;
            addr.offset._0_4_ = (int)(var_38->start).offset;
            addr.offset._4_4_ = *(type_20 *)((int)&(var_38->start).offset + 4);
            var_56
                      ((type_2 *)(type_6)(filedata->file_header).e_machine,aux.funtab,aux.nfuns,
                       aux.strtab,aux.strtab_size,addr,&var_58,&offset);
            var_57(&DAT_0007892a,1,2,*(type_7 **)puVar12);
            if ((var_58 != (char *)0x0) &&
               (var_59(var_58,*(type_7 **)puVar12),
               (void *)offset != (void *)0x0 || offset._4_4_ != 0)) {
              var_30("+%lx");
            }
            uVar45 = 1;
            puVar44 = &DAT_00078932;
            var_57(&DAT_00078932,1,4,*(type_7 **)puVar12);
            var_60(var_40(uVar45,puVar44),(print_mode)(var_38->start).offset);
            __stream = *(type_7 **)puVar12;
            uVar45 = 0x2d;
            var_61(0x2d,__stream);
            var_60(var_40(__stream,uVar45),(print_mode)(var_38->end).offset);
            var_30("], info at +0x%lx\n");
            if (aux.info != (type_10 *)0x0) {
              var_62 = (var_38->info).section;
              var_2 = (type_6)(var_38->info).offset;
              var_3 = var_2 - (type_6)aux.info_addr;
              var_63 = (*(int *)((int)&(var_38->info).offset + 4) - aux.info_addr._4_4_) -
                       (type_6)(var_2 < (type_6)aux.info_addr);
              if (var_62 == 0) {
                if (var_63 < (var_3 < aux.info_size)) {
LAB_0002cb5e:
                  var_34 = aux.info + (var_2 - (type_6)aux.info_addr);
                  var_39 = (*byte_get)(var_34,8);
                  var_2 = (type_6)(var_39 >> 0x20);
                  var_17 = "";
                  if ((var_39 & 0x100000000) != 0) {
                    var_17 = " ehandler";
                  }
                  var_3 = var_2 >> 0x10;
                  var_30("  v%u, flags=0x%lx (%s%s), len=%lu bytes\n",var_3,var_2 & 0xffff,var_17
                        );
                  if (var_3 == 1) {
                    in_body = 0;
                    var_37 = aux.info + aux.info_size;
                    if (var_34 + (int)var_39 * var_35 + 8 < aux.info + aux.info_size) {
                      var_37 = var_34 + (int)var_39 * var_35 + 8;
                    }
                    var_34 = var_34 + 8;
                    if (var_34 < var_37) {
                      do {
                        var_34 = var_64(var_34,in_body,&in_body,var_37);
                      } while (var_34 < var_37);
                    }
                  }
                  else {
                    var_17 = (char *)var_8();
                    var_30(var_17);
                  }
                  goto LAB_0002cbe7;
                }
              }
              else {
                var_65 = (type_6)filedata->section_headers[var_62].sh_addr;
                if (var_63 + *(int *)((int)&filedata->section_headers[var_62].sh_addr + 4) +
                    (type_6)var_23(var_3,var_65) < (type_6)(var_3 + var_65 < aux.info_size)) {
                  var_2 = var_65 + var_2;
                  goto LAB_0002cb5e;
                }
              }
              var_17 = (char *)var_8();
              var_50(var_17);
            }
LAB_0002cbe7:
            var_38 = var_38 + 1;
          } while (var_38 < aux.table + aux.table_len);
        }
        var_10(aux.funtab);
      }
    }
  }
  else {
    var_66 = filedata->program_headers;
    if (var_66 != (type_16 *)0x0) {
LAB_0002bfdd:
      var_21 = (type_12 *)(var_41->file_header).e_entry;
      var_67 = var_66 + var_2;
      for (; var_2 = (type_6)aux.seg_base, var_3 = aux.seg_base._4_4_, var_66 < var_67;
          var_66 = var_66 + 1) {
        if (var_66->p_type == 1) {
          var_2 = (type_6)var_66->p_vaddr;
          var_3 = *(type_6 *)((int)&var_66->p_vaddr + 4);
          var_63 = *(type_6 *)((var_41->file_header).e_ident + 4);
          var_65 = *(type_6 *)(var_41->file_header).e_ident;
          if ((var_3 <= var_63 && (type_6)(var_65 < var_2) <= var_63 - var_3) &&
             (var_63 = var_63 + *(int *)((int)&(var_41->file_header).e_entry + 4) +
                       (type_6)var_23(var_65,(type_6)var_21),
             var_68 = var_3 + *(int *)((int)&var_66->p_memsz + 4) +
                      (type_6)var_23(var_2,(type_6)var_66->p_memsz),
             var_63 <= var_68 &&
             (type_6)(var_2 + (int)var_66->p_memsz < var_65 + (int)var_21) <= var_68 - var_63))
          break;
        }
      }
      goto LAB_0002c050;
    }
    var_43 = var_69(filedata);
    if (var_43 != 0) {
      var_66 = filedata->program_headers;
      var_2 = (filedata->file_header).e_phnum;
      goto LAB_0002bfdd;
    }
  }
  if (aux.table != (type_13 *)0x0) {
    var_10(aux.table);
  }
LAB_0002c236:
  if (aux.info != (type_10 *)0x0) {
    var_10(aux.info);
  }
  aux.table = (type_13 *)0x0;
  aux.info = (type_10 *)0x0;
  if (var_70 == 0) goto LAB_0002c274;
LAB_0002bce7:
  var_2 = (filedata->file_header).e_shnum;
  var_4 = (type_5 *)var_70;
  goto LAB_0002bbd0;
}


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

undefined4 MASKED(int param_1)

{
  ushort uVar1;
  undefined4 *puVar2;
  uint uVar3;
  int iVar4;
  undefined1 *puVar5;
  code *pcVar6;
  char *pcVar7;
  int *piVar8;
  byte *pbVar9;
  undefined *puVar10;
  code *pcVar11;
  int extraout_ECX;
  int iVar12;
  uint *puVar13;
  uint *puVar14;
  uint uVar15;
  int unaff_EBP;
  byte *pbVar16;
  code *pcVar17;
  uint uVar18;
  code **ppcVar19;
  int *piVar20;
  uint uVar21;
  int iVar22;
  byte *pbVar23;
  undefined1 uVar24;
  bool bVar25;
  undefined1 uVar26;
  bool bVar27;
  byte bVar28;
  undefined8 uVar29;
  longlong lVar30;
  ulonglong uVar31;
  undefined1 auStack_cc [8];
  code *local_c4;
  int *local_c0;
  code *local_bc;
  uint local_b8;
  code *local_b4;
  uint local_b0;
  code *local_ac;
  uint local_a8;
  uint *local_a4;
  char *local_a0;
  void *local_9c;
  uint local_98;
  int *local_94;
  byte *local_90;
  code *local_8c;
  char **local_88;
  code *local_84;
  undefined4 local_80;
  code **local_7c;
  undefined4 *local_78;
  char *local_74;
  undefined4 local_70;
  undefined4 local_64;
  char *local_60;
  code *local_5c;
  int local_58;
  code *local_54;
  uint local_50;
  void *local_4c;
  code *local_48;
  code *local_44;
  uint local_40;
  uint local_3c;
  uint local_38;
  int *local_34;
  size_t local_30;
  void *local_2c;
  size_t local_28;
  void *local_24;
  int local_20;
  
  bVar28 = 0;
  pcVar6 = (code *)FUN_0004ab89();
  local_70 = 1;
  ppcVar19 = &local_54;
  for (iVar12 = extraout_ECX; iVar12 != 0; iVar12 = iVar12 + -1) {
    *ppcVar19 = pcVar6;
    ppcVar19 = ppcVar19 + (uint)bVar28 * -2 + 1;
  }
  piVar8 = *(int **)(param_1 + 0x54);
  iVar12 = *(int *)(param_1 + 0x5c);
  if (piVar8 != (int *)0x0) {
    local_bc = (code *)(unaff_EBP + 0x4c725);
    local_c4 = (code *)0x0;
    piVar20 = (int *)0x0;
    local_a4 = (uint *)(unaff_EBP + 0x577cb);
LAB_0002bab7:
    do {
      if (*(int *)(iVar12 + 4) == 2) {
        if (*(int **)(iVar12 + 0x28) < piVar8) {
          if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {
            local_34 = (int *)FUN_00022830();
          }
          else {
            local_34 = (int *)FUN_000222e0();
          }
          local_c0 = (int *)(*(int *)(param_1 + 0x5c) + *(int *)(iVar12 + 0x28) * 0x48);
          if (local_24 != (void *)0x0) {
            dcgettext();
            error();
            free(local_24);
            local_70 = 0;
          }
          dcgettext();
          piVar8 = local_c0;
          local_24 = (void *)FUN_0001bf90(1,0,local_c0[8],local_c0[9]);
          local_20 = 0;
          if (local_24 != (void *)0x0) {
            local_20 = piVar8[8];
          }
          piVar20 = (int *)((int)piVar20 + 1);
          iVar12 = iVar12 + 0x48;
          piVar8 = *(int **)(param_1 + 0x54);
          if (piVar8 <= piVar20) break;
          goto LAB_0002bab7;
        }
      }
      else {
        local_c4 = (code *)((int)local_c4 + (uint)(*(int *)(iVar12 + 4) == 0x70000001));
      }
      piVar20 = (int *)((int)piVar20 + 1);
      iVar12 = iVar12 + 0x48;
    } while (piVar20 < piVar8);
    local_94 = (int *)0x0;
    local_90 = (byte *)((int)local_c4 - 1);
    local_78 = (undefined4 *)(&UNK_0008e39b + unaff_EBP);
    if (local_c4 != (code *)0x0) {
LAB_0002bbd0:
      puVar13 = *(uint **)(param_1 + 0x5c);
      puVar14 = puVar13 + (int)local_94 * 0x12;
      if (piVar8 <= local_94) {
LAB_0002bc1b:
        local_a4 = puVar14;
                    /* WARNING: Subroutine does not return */
        __assert_fail((char *)(unaff_EBP + 0x4cf20),(char *)(unaff_EBP + 0x4b054),0x1df7,
                      (char *)(unaff_EBP + 0x62a1f));
      }
      uVar15 = puVar14[1];
      local_a4 = puVar14;
      piVar20 = local_94;
      while (uVar15 != 0x70000001) {
        piVar20 = (int *)((int)piVar20 + 1);
        if (piVar20 == piVar8) goto LAB_0002bc1b;
        uVar15 = local_a4[0x13];
        local_a4 = local_a4 + 0x12;
      }
      local_94 = (int *)((int)piVar20 + 1);
      local_c0 = piVar20;
      if ((*(byte *)((int)local_a4 + 9) & 2) == 0) {
        uVar15 = *(uint *)(param_1 + 100);
        if (uVar15 == 0) {
LAB_0002c92b:
          pbVar9 = (byte *)dcgettext();
          iVar12 = 0x16;
          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;
          pbVar16 = (byte *)(unaff_EBP + 0x4ce73);
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar9 < *pbVar16;
            bVar27 = *pbVar9 == *pbVar16;
            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;
            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;
          } while (bVar27);
          uVar15 = *(uint *)(param_1 + 100);
          if ((!bVar25 && !bVar27) == bVar25) {
            if ((uVar15 == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {
              local_c4 = (code *)dcgettext();
              puVar13 = *(uint **)(param_1 + 0x5c);
            }
            else {
              local_c4 = (code *)(*local_a4 + uVar15);
              puVar13 = *(uint **)(param_1 + 0x5c);
            }
            goto LAB_0002bd4e;
          }
          if (uVar15 != 0) {
            uVar18 = *local_a4;
            goto LAB_0002c5fe;
          }
LAB_0002c9ae:
          pbVar9 = (byte *)dcgettext();
          iVar12 = 0xd;
          bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
          bVar27 = &stack0x00000000 == (undefined1 *)0xcc;
          pbVar16 = (byte *)(unaff_EBP + 0x4cea2);
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = *pbVar9 < *pbVar16;
            bVar27 = *pbVar9 == *pbVar16;
            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;
            pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;
          } while (bVar27);
          if ((!bVar25 && !bVar27) == bVar25) {
            if ((*(int *)(param_1 + 100) == 0) || (*(uint *)(param_1 + 0x68) <= *local_a4)) {
              pbVar9 = (byte *)dcgettext();
            }
            else {
              pbVar9 = (byte *)(*local_a4 + *(int *)(param_1 + 100));
            }
LAB_0002ca17:
            local_b4 = (code *)(pbVar9 + 0xd);
          }
          else {
LAB_0002c62d:
            local_b4 = (code *)(&UNK_00050218 + unaff_EBP);
          }
          local_c4 = *(code **)(param_1 + 0x5c);
          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;
          local_bc = FUN_0004ce60 + unaff_EBP;
          local_c0 = (int *)0x0;
          local_ac = (code *)(unaff_EBP + 0x4b0b1);
          local_9c = (void *)(unaff_EBP + 0x4b727);
          do {
            if (local_c4 == (code *)0x0) {
              uVar24 = auStack_cc < (undefined1 *)0x4;
              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;
              local_a0 = (char *)(unaff_EBP + 0x4b720);
              pcVar6 = (code *)dcgettext();
              iVar12 = 0x12;
              pcVar17 = local_bc;
              do {
                if (iVar12 == 0) break;
                iVar12 = iVar12 + -1;
                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;
                uVar26 = *pcVar6 == *pcVar17;
                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;
                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
              } while ((bool)uVar26);
              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {
                pcVar6 = (code *)dcgettext();
                goto LAB_0002c699;
              }
            }
            else {
              uVar15 = *(uint *)(param_1 + 100);
              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)
                 ) {
                pcVar6 = (code *)dcgettext();
                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;
                iVar12 = 0x12;
                pcVar17 = local_bc;
                do {
                  if (iVar12 == 0) break;
                  iVar12 = iVar12 + -1;
                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;
                  bVar27 = *pcVar6 == *pcVar17;
                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;
                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                } while (bVar27);
                if ((!bVar25 && !bVar27) == bVar25) {
                  if (*(int *)(param_1 + 100) == 0) {
                    pcVar6 = (code *)dcgettext();
                  }
                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {
                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);
                  }
                  else {
                    pcVar6 = (code *)dcgettext();
                  }
                  goto LAB_0002c699;
                }
              }
              else {
                bVar25 = CARRY4(uVar15,uVar18);
                pcVar6 = (code *)(uVar15 + uVar18);
                bVar27 = pcVar6 == (code *)0x0;
                iVar12 = 0x12;
                pcVar17 = pcVar6;
                pcVar11 = local_bc;
                do {
                  if (iVar12 == 0) break;
                  iVar12 = iVar12 + -1;
                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;
                  bVar27 = *pcVar17 == *pcVar11;
                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;
                } while (bVar27);
                if ((!bVar25 && !bVar27) == bVar25) {
LAB_0002c699:
                  iVar12 = strcmp((char *)(pcVar6 + 0x12),(char *)local_b4);
                  if (iVar12 == 0) goto LAB_0002be90;
                }
              }
            }
            local_c0 = (int *)((int)local_c0 + 1);
            local_c4 = (code *)((int)local_c4 + 0x48);
            piVar8 = *(int **)(param_1 + 0x54);
          } while (local_c0 < piVar8);
        }
        else {
          uVar18 = *local_a4;
          bVar25 = uVar18 < *(uint *)(param_1 + 0x68);
          bVar27 = uVar18 == *(uint *)(param_1 + 0x68);
          if (!bVar25) goto LAB_0002c92b;
          local_c4 = (code *)(uVar15 + uVar18);
          iVar12 = 0x16;
          puVar14 = (uint *)local_c4;
          pbVar9 = (byte *)(unaff_EBP + 0x4ce73);
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = (byte)*puVar14 < *pbVar9;
            bVar27 = (byte)*puVar14 == *pbVar9;
            puVar14 = (uint *)((int)puVar14 + (uint)bVar28 * -2 + 1);
            pbVar9 = pbVar9 + (uint)bVar28 * -2 + 1;
          } while (bVar27);
          if ((!bVar25 && !bVar27) != bVar25) {
LAB_0002c5fe:
            if (*(uint *)(param_1 + 0x68) <= uVar18) goto LAB_0002c9ae;
            bVar25 = CARRY4(uVar18,uVar15);
            pbVar9 = (byte *)(uVar18 + uVar15);
            bVar27 = pbVar9 == (byte *)0x0;
            iVar12 = 0xd;
            pbVar16 = pbVar9;
            pbVar23 = (byte *)(unaff_EBP + 0x4cea2);
            do {
              if (iVar12 == 0) break;
              iVar12 = iVar12 + -1;
              bVar25 = *pbVar16 < *pbVar23;
              bVar27 = *pbVar16 == *pbVar23;
              pbVar16 = pbVar16 + (uint)bVar28 * -2 + 1;
              pbVar23 = pbVar23 + (uint)bVar28 * -2 + 1;
            } while (bVar27);
            if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002ca17;
            goto LAB_0002c62d;
          }
LAB_0002bd4e:
          local_b4 = (code *)((int)local_c4 + 0x16);
          local_c4 = (code *)puVar13;
          if (*(int *)(param_1 + 0x54) == 0) goto LAB_0002bc78;
          local_bc = (code *)(unaff_EBP + 0x4ce8a);
          local_c0 = (int *)0x0;
          local_ac = (code *)(unaff_EBP + 0x4b0b1);
          local_9c = (void *)(unaff_EBP + 0x4b727);
          do {
            if (local_c4 == (code *)0x0) {
              uVar24 = auStack_cc < (undefined1 *)0x4;
              uVar26 = &stack0x00000000 == (undefined1 *)0xd0;
              local_a0 = (char *)(unaff_EBP + 0x4b720);
              pcVar6 = (code *)dcgettext();
              iVar12 = 0x17;
              pcVar17 = local_bc;
              do {
                if (iVar12 == 0) break;
                iVar12 = iVar12 + -1;
                uVar24 = (byte)*pcVar6 < (byte)*pcVar17;
                uVar26 = *pcVar6 == *pcVar17;
                pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;
                pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
              } while ((bool)uVar26);
              if ((!(bool)uVar24 && !(bool)uVar26) == (bool)uVar24) {
                pcVar6 = (code *)dcgettext();
                goto LAB_0002bdb1;
              }
            }
            else {
              uVar15 = *(uint *)(param_1 + 100);
              if ((uVar15 == 0) || (uVar18 = *(uint *)local_c4, *(uint *)(param_1 + 0x68) <= uVar18)
                 ) {
                pcVar6 = (code *)dcgettext();
                bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
                bVar27 = &stack0x00000000 == (undefined1 *)0xcc;
                iVar12 = 0x17;
                pcVar17 = local_bc;
                do {
                  if (iVar12 == 0) break;
                  iVar12 = iVar12 + -1;
                  bVar25 = (byte)*pcVar6 < (byte)*pcVar17;
                  bVar27 = *pcVar6 == *pcVar17;
                  pcVar6 = pcVar6 + (uint)bVar28 * -2 + 1;
                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                } while (bVar27);
                if ((!bVar25 && !bVar27) == bVar25) {
                  if (*(int *)(param_1 + 100) == 0) {
                    pcVar6 = (code *)dcgettext();
                  }
                  else if (*(uint *)local_c4 < *(uint *)(param_1 + 0x68)) {
                    pcVar6 = (code *)(*(int *)(param_1 + 100) + *(uint *)local_c4);
                  }
                  else {
                    pcVar6 = (code *)dcgettext();
                  }
                  goto LAB_0002bdb1;
                }
              }
              else {
                bVar25 = CARRY4(uVar15,uVar18);
                pcVar6 = (code *)(uVar15 + uVar18);
                bVar27 = pcVar6 == (code *)0x0;
                iVar12 = 0x17;
                pcVar17 = pcVar6;
                pcVar11 = local_bc;
                do {
                  if (iVar12 == 0) break;
                  iVar12 = iVar12 + -1;
                  bVar25 = (byte)*pcVar17 < (byte)*pcVar11;
                  bVar27 = *pcVar17 == *pcVar11;
                  pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                  pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;
                } while (bVar27);
                if ((!bVar25 && !bVar27) == bVar25) {
LAB_0002bdb1:
                  iVar12 = strcmp((char *)(pcVar6 + 0x17),(char *)local_b4);
                  if (iVar12 == 0) goto LAB_0002be90;
                }
              }
            }
            local_c0 = (int *)((int)local_c0 + 1);
            local_c4 = (code *)((int)local_c4 + 0x48);
            piVar8 = *(int **)(param_1 + 0x54);
          } while (local_c0 < piVar8);
        }
        goto LAB_0002be9a;
      }
      if (((*(int *)(&DAT_0008a8d7 + unaff_EBP) != 0) &&
          (puVar2 = *(undefined4 **)(*(int *)(&DAT_0008a8d7 + unaff_EBP) + (int)piVar20 * 4),
          puVar2 != (undefined4 *)0x0)) && (pcVar6 = (code *)*puVar2, pcVar6 != (code *)0x0)) {
        local_bc = FUN_0004ce60 + unaff_EBP;
        local_ac = (code *)(unaff_EBP + 0x4b0b1);
        local_a0 = (char *)(unaff_EBP + 0x4b727);
        do {
          local_c4 = (code *)(puVar13 + *(uint *)(pcVar6 + 4) * 0x12);
          if ((local_c4 == (code *)0x0) || (*(int *)(param_1 + 100) == 0)) {
LAB_0002c8dc:
            local_b4 = pcVar6;
            pcVar17 = (code *)dcgettext();
            bVar25 = (undefined1 *)0xffffffef < &stack0xffffff24;
            pcVar6 = local_b4;
            puVar5 = auStack_cc;
          }
          else {
            uVar15 = *(uint *)local_c4;
            pcVar17 = (code *)(*(int *)(param_1 + 100) + uVar15);
            bVar25 = uVar15 < *(uint *)(param_1 + 0x68);
            puVar5 = (undefined1 *)(uVar15 - *(uint *)(param_1 + 0x68));
            if (!bVar25) goto LAB_0002c8dc;
          }
          bVar27 = puVar5 == (undefined1 *)0x0;
          iVar12 = 0x13;
          pcVar11 = local_bc;
          do {
            if (iVar12 == 0) break;
            iVar12 = iVar12 + -1;
            bVar25 = (byte)*pcVar17 < (byte)*pcVar11;
            bVar27 = *pcVar17 == *pcVar11;
            pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
            pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;
          } while (bVar27);
          if ((!bVar25 && !bVar27) == bVar25) goto LAB_0002be90;
          pcVar6 = *(code **)pcVar6;
          if (pcVar6 == (code *)0x0) break;
          puVar13 = *(uint **)(param_1 + 0x5c);
        } while( true );
      }
      goto LAB_0002bc78;
    }
  }
  pcVar7 = (char *)dcgettext();
  printf(pcVar7);
LAB_0002c274:
  if (local_34 != (int *)0x0) {
    free(local_34);
  }
  if (local_24 != (void *)0x0) {
    free(local_24);
  }
  return local_70;
LAB_0002be90:
  piVar8 = *(int **)(param_1 + 0x54);
LAB_0002be9a:
  pcVar6 = local_c4;
  if (local_c0 == piVar8) {
LAB_0002bc78:
    pcVar7 = (char *)dcgettext();
    printf(pcVar7);
    if (*(int *)(param_1 + 100) == 0) {
      printf((char *)(unaff_EBP + 0x67e12));
    }
    else {
      FUN_00022190();
      printf((char *)(unaff_EBP + 0x4ceb0));
    }
    goto joined_r0x0002c26e;
  }
  local_44 = *(code **)((int)local_c4 + 0x10);
  local_40 = *(uint *)((int)local_c4 + 0x14);
  dcgettext();
  local_4c = (void *)FUN_0001bf90(1,0,*(uint *)((int)pcVar6 + 0x20),*(uint *)((int)pcVar6 + 0x24));
  local_48 = (code *)0x0;
  if (local_4c != (void *)0x0) {
    local_48 = *(code **)((int)pcVar6 + 0x20);
  }
  pcVar7 = (char *)dcgettext();
  printf(pcVar7);
  if (*(int *)(param_1 + 100) == 0) {
    printf((char *)(unaff_EBP + 0x67e12));
  }
  else {
    FUN_00022190();
    printf((char *)(unaff_EBP + 0x4ceb0));
  }
  local_c0 = (int *)(&DAT_0008e36b + unaff_EBP);
  FUN_0006b5b0();
  pcVar7 = (char *)dcgettext();
  printf(pcVar7);
  local_50 = 0;
  iVar12 = *(int *)(param_1 + 0x4c);
  if (iVar12 == 0) {
    local_b0 = local_a4[9];
    local_b4 = (code *)local_a4[8];
    uVar15 = local_3c;
    uVar18 = local_38;
LAB_0002c050:
    local_38 = uVar18;
    local_3c = uVar15;
    dcgettext();
    pcVar6 = local_b4;
    local_80 = 0;
    local_84 = local_b4;
    local_bc = (code *)FUN_0001bf90(1,0,local_b4,0);
    piVar8 = local_c0;
    if (local_bc != (code *)0x0) {
      local_50 = (uint)pcVar6 / (uint)(*local_c0 * 3);
      local_b4 = pcVar6;
      pcVar6 = (code *)FUN_0005db00();
      local_ac = (code *)(&UNK_0008e39b + unaff_EBP);
      local_c4 = local_bc;
      local_54 = pcVar6;
      if (!CARRY4((uint)(local_b4 + *piVar8 * -3),(uint)local_bc)) {
        do {
          pcVar11 = local_ac;
          pcVar17 = local_c4;
          *(undefined2 *)pcVar6 = 0;
          *(undefined2 *)(pcVar6 + 0xc) = 0;
          *(undefined2 *)(pcVar6 + 0x18) = 0;
          uVar29 = (**(code **)local_ac)();
          *(undefined8 *)(pcVar6 + 4) = uVar29;
          iVar12 = *local_c0;
          uVar29 = (**(code **)pcVar11)();
          *(undefined8 *)(pcVar6 + 0x10) = uVar29;
          iVar22 = *local_c0;
          lVar30 = (**(code **)pcVar11)();
          iVar4 = *local_c0;
          local_c4 = pcVar17 + iVar4 + iVar22 + iVar12;
          pcVar17 = pcVar6 + 4;
          uVar15 = *(uint *)pcVar17;
          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;
          *(uint *)(pcVar6 + 8) = *(uint *)(pcVar6 + 8) + local_38 + (uint)CARRY4(uVar15,local_3c);
          pcVar17 = pcVar6 + 0x10;
          uVar15 = *(uint *)pcVar17;
          *(uint *)pcVar17 = *(uint *)pcVar17 + local_3c;
          *(uint *)(pcVar6 + 0x14) =
               *(uint *)(pcVar6 + 0x14) + local_38 + (uint)CARRY4(uVar15,local_3c);
          pcVar17 = pcVar6 + 0x1c;
          pcVar6 = pcVar6 + 0x24;
          *(longlong *)pcVar17 = lVar30 + CONCAT44(local_38,local_3c);
        } while (local_c4 <= local_bc + (int)(local_b4 + iVar4 * -3));
      }
      free(local_bc);
      local_8c = (code *)(unaff_EBP + 0x4cedf);
      puVar14 = *(uint **)(param_1 + 0x5c);
      uVar15 = *(uint *)(param_1 + 0x54);
      local_c4 = (code *)puVar14;
      if (puVar14 < puVar14 + uVar15 * 0x12) {
        do {
          if (((*(uint *)((int)local_c4 + 4) == 4) && (*(uint *)((int)local_c4 + 0x2c) < uVar15)) &&
             (local_a4 == puVar14 + *(uint *)((int)local_c4 + 0x2c) * 0x12)) {
            iVar12 = FUN_0001e360();
            if (iVar12 == 0) {
              free(local_54);
              local_54 = (code *)0x0;
              local_50 = 0;
              goto LAB_0002c236;
            }
            local_a0 = local_60;
            local_b4 = local_5c;
            local_bc = local_5c;
            if (local_5c < local_5c + (int)local_60 * 0x18) {
              local_88 = (char **)(param_1 + 0x42);
              local_7c = (code **)(unaff_EBP + 0x5787f);
              do {
                piVar8 = local_34;
                uVar15 = *(uint *)(local_bc + 0xc);
                uVar18 = *(uint *)(local_bc + 8);
                if (*(int *)(&DAT_0008a8e7 + unaff_EBP) == 0) {
                  local_9c = (void *)FUN_00021e40();
                  pcVar6 = (code *)FUN_00015c60();
                  local_ac = (code *)(piVar8 + uVar15 * 7);
                  bVar25 = pcVar6 == (code *)0x0;
                  if (!bVar25) goto LAB_0002c3b9;
LAB_0002c4e0:
                  dcgettext();
LAB_0002c4fb:
                  warn();
                  local_b4 = local_5c;
                  local_a0 = local_60;
                }
                else {
                  local_9c = (void *)(uVar18 & 0xff);
                  pcVar6 = (code *)FUN_00015c60();
                  local_ac = (code *)(piVar8 + (uVar18 >> 8 | uVar15 << 0x18) * 7);
                  bVar25 = pcVar6 == (code *)0x0;
                  if (bVar25) goto LAB_0002c4e0;
LAB_0002c3b9:
                  bVar27 = false;
                  iVar12 = 0xd;
                  pcVar17 = pcVar6;
                  pcVar11 = local_8c;
                  do {
                    if (iVar12 == 0) break;
                    iVar12 = iVar12 + -1;
                    bVar27 = (byte)*pcVar17 < (byte)*pcVar11;
                    bVar25 = *pcVar17 == *pcVar11;
                    pcVar17 = pcVar17 + (uint)bVar28 * -2 + 1;
                    pcVar11 = pcVar11 + (uint)bVar28 * -2 + 1;
                  } while (bVar25);
                  if ((!bVar27 && !bVar25) != bVar27) {
                    local_b4 = pcVar6;
                    dcgettext();
                    goto LAB_0002c4fb;
                  }
                  local_9c = *(void **)local_bc;
                  local_98 = *(uint *)(local_bc + 4);
                  uVar15 = FUN_0006b5b0();
                  if (local_50 <= uVar15) {
                    dcgettext();
                    goto LAB_0002c4fb;
                  }
                  FUN_0006b5b0();
                  lVar30 = FUN_0006b6c0();
                  pcVar6 = local_54 + uVar15 * 0x24;
                  pcVar17 = *(code **)(local_ac + 0x18);
                  iVar12 = *(uint *)(local_bc + 0x10) + *(uint *)local_ac;
                  iVar22 = *(uint *)(local_bc + 0x14) + *(uint *)(local_ac + 4) +
                           (uint)CARRY4(*(uint *)(local_bc + 0x10),*(uint *)local_ac);
                  local_ac._0_2_ = SUB42(pcVar17,0);
                  local_ac = pcVar17;
                  if (lVar30 == 1) {
                    *(int *)(pcVar6 + 0x10) = iVar12;
                    *(int *)(pcVar6 + 0x14) = iVar22;
                    *(undefined2 *)(pcVar6 + 0xc) = local_ac._0_2_;
                  }
                  else if (lVar30 == 2) {
                    *(undefined2 *)(pcVar6 + 0x18) = local_ac._0_2_;
                    *(int *)(pcVar6 + 0x1c) = iVar12;
                    *(int *)(pcVar6 + 0x20) = iVar22;
                  }
                  else {
                    *(undefined2 *)pcVar6 = local_ac._0_2_;
                    *(int *)(pcVar6 + 4) = iVar12;
                    *(int *)(pcVar6 + 8) = iVar22;
                  }
                }
                local_bc = local_bc + 0x18;
              } while (local_bc < local_b4 + (int)local_a0 * 0x18);
            }
            free(local_b4);
            puVar14 = *(uint **)(param_1 + 0x5c);
            uVar15 = *(uint *)(param_1 + 0x54);
          }
          local_c4 = (code *)((int)local_c4 + 0x48);
        } while (local_c4 < puVar14 + uVar15 * 0x12);
      }
      if (local_50 != 0) {
        local_2c = (void *)FUN_0006b190();
        local_28 = local_30;
        if (local_30 != 0) {
          local_28 = 0;
          piVar8 = local_34;
          do {
            if ((*piVar8 != 0 || piVar8[1] != 0) && ((*(byte *)(piVar8 + 5) & 0xf) == 2)) {
              iVar12 = local_28 * 0x1c;
              local_28 = local_28 + 1;
              piVar20 = (int *)(iVar12 + (int)local_2c);
              *piVar20 = *piVar8;
              piVar20[1] = piVar8[1];
              piVar20[2] = piVar8[2];
              piVar20[3] = piVar8[3];
              piVar20[4] = piVar8[4];
              piVar20[5] = piVar8[5];
              piVar20[6] = piVar8[6];
            }
            piVar8 = piVar8 + 7;
          } while (local_34 + local_30 * 7 != piVar8);
        }
        qsort(local_2c,local_28,0x1c,(__compar_fn_t)(unaff_EBP + -0xfc3d));
        if (local_54 < local_54 + local_50 * 0x24) {
          local_88 = &local_60;
          local_7c = &local_5c;
          local_c4 = *(code **)(&DAT_0008859b + unaff_EBP);
          local_a0 = (char *)(unaff_EBP + 0x4ceed);
          local_9c = (void *)(unaff_EBP + 0x4cef5);
          local_8c = (code *)(unaff_EBP + 0x4cefa);
          local_74 = (char *)(unaff_EBP + 0x4cef0);
          pcVar6 = local_54;
          do {
            FUN_00023b50(local_24,local_20,*(undefined2 *)pcVar6,*(uint *)(pcVar6 + 4));
            pcVar17 = local_c4;
            fwrite(local_a0,1,2,*(FILE **)local_c4);
            if ((local_60 != (char *)0x0) &&
               (fputs(local_60,*(FILE **)pcVar17), local_5c != (code *)0x0 || local_58 != 0)) {
              printf(local_74);
            }
            pcVar17 = local_c4;
            fwrite(local_9c,1,4,*(FILE **)local_c4);
            FUN_0001e910();
            fputc(0x2d,*(FILE **)pcVar17);
            FUN_0001e910();
            printf((char *)local_8c);
            if (local_4c != (void *)0x0) {
              uVar1 = *(ushort *)(pcVar6 + 0x18);
              local_b4 = *(code **)(pcVar6 + 0x1c);
              local_a8 = local_40;
              local_b0 = *(uint *)(pcVar6 + 0x20);
              local_a4 = (uint *)CONCAT22(local_a4._2_2_,uVar1);
              local_ac = local_44;
              pcVar17 = local_b4 + -(int)local_44;
              uVar15 = (local_b0 - local_40) - (uint)(local_b4 < local_44);
              local_bc = local_48;
              local_b8 = 0;
              if (uVar1 == 0) {
                pcVar11 = local_b4;
                if (uVar15 < (pcVar17 < local_48)) {
LAB_0002cb5e:
                  local_bc = (code *)((int)local_4c + ((int)pcVar11 - (int)local_44));
                  uVar31 = (*(code *)*local_78)();
                  uVar15 = (uint)(uVar31 >> 0x20);
                  local_a4 = (uint *)uVar31;
                  puVar10 = &UNK_00050218 + unaff_EBP;
                  if ((uVar31 & 0x100000000) != 0) {
                    puVar10 = (undefined *)(unaff_EBP + 0x4ce56);
                  }
                  uVar18 = uVar15 >> 0x10;
                  printf((char *)(unaff_EBP + 0x578d3),uVar18,uVar15 & 0xffff,puVar10);
                  if (uVar18 == 1) {
                    local_64 = 0;
                    pcVar17 = local_48 + (int)local_4c;
                    if (local_bc + (int)local_a4 * *local_c0 + 8 < local_48 + (int)local_4c) {
                      pcVar17 = local_bc + (int)local_a4 * *local_c0 + 8;
                    }
                    pcVar11 = local_bc + 8;
                    while (pcVar11 < pcVar17) {
                      local_bc = pcVar6;
                      pcVar11 = (code *)FUN_0004c6d0();
                      pcVar6 = local_bc;
                    }
                  }
                  else {
                    pcVar7 = (char *)dcgettext();
                    printf(pcVar7);
                  }
                  goto LAB_0002cbe7;
                }
              }
              else {
                iVar12 = (uint)uVar1 * 0x48 + *(int *)(param_1 + 0x5c);
                uVar18 = *(uint *)(iVar12 + 0x10);
                if (uVar15 + *(int *)(iVar12 + 0x14) + (uint)CARRY4((uint)pcVar17,uVar18) <
                    (uint)(pcVar17 + uVar18 < local_48)) {
                  pcVar11 = local_b4 + uVar18;
                  goto LAB_0002cb5e;
                }
              }
              dcgettext();
              warn();
            }
LAB_0002cbe7:
            pcVar6 = pcVar6 + 0x24;
          } while (pcVar6 < local_54 + local_50 * 0x24);
        }
        free(local_2c);
      }
    }
  }
  else {
    puVar14 = *(uint **)(param_1 + 0x60);
    if (puVar14 != (uint *)0x0) {
LAB_0002bfdd:
      local_b0 = local_a4[9];
      local_b4 = (code *)local_a4[8];
      puVar13 = puVar14 + iVar12 * 0xe;
      for (; uVar15 = local_3c, uVar18 = local_38, puVar14 < puVar13; puVar14 = puVar14 + 0xe) {
        local_c4 = (code *)puVar13;
        if (*puVar14 == 1) {
          uVar15 = puVar14[4];
          uVar18 = puVar14[5];
          uVar21 = local_a4[5];
          uVar3 = local_a4[4];
          if (uVar18 <= uVar21 && (uint)(uVar3 < uVar15) <= uVar21 - uVar18) {
            local_bc = local_b4 + uVar3;
            local_b8 = uVar21 + local_b0 + (uint)CARRY4(uVar3,(uint)local_b4);
            uVar21 = uVar18 + puVar14[0xb] + (uint)CARRY4(uVar15,puVar14[10]);
            if (local_b8 <= uVar21 &&
                (uint)((code *)(uVar15 + puVar14[10]) < local_bc) <= uVar21 - local_b8) break;
          }
        }
      }
      goto LAB_0002c050;
    }
    iVar12 = FUN_000269d0();
    if (iVar12 != 0) {
      puVar14 = *(uint **)(param_1 + 0x60);
      iVar12 = *(int *)(param_1 + 0x4c);
      goto LAB_0002bfdd;
    }
  }
  if (local_54 != (code *)0x0) {
    free(local_54);
  }
LAB_0002c236:
  if (local_4c != (void *)0x0) {
    free(local_4c);
  }
  local_54 = (code *)0x0;
  local_4c = (void *)0x0;
joined_r0x0002c26e:
  local_90 = local_90 + -1;
  if (local_90 == (byte *)0xffffffff) goto LAB_0002c274;
  piVar8 = *(int **)(param_1 + 0x54);
  goto LAB_0002bbd0;
}

