
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Unknown calling convention */

bfd_boolean parse_coff(bfd *abfd,asymbol **syms,long symcount,void *dhandle)

{
  undefined1 uVar1;
  coff_types *types_00;
  debug_indirect_type *pdVar2;
  byte bVar3;
  byte bVar4;
  debug_type *ppdVar5;
  int iVar6;
  debug_type pdVar7;
  bfd_boolean bVar8;
  int iVar9;
  undefined4 uVar10;
  char *pcVar11;
  alent *paVar12;
  debug_type pdVar13;
  uint uVar14;
  byte *pbVar15;
  bool bVar16;
  bool bVar17;
  bool bVar18;
  byte bVar19;
  asymbol *sym;
  asymbol *paVar20;
  internal_auxent *local_d4;
  asymbol *local_d0;
  debug_type local_c4;
  debug_type local_c0;
  uint local_bc;
  uint local_b8;
  alent *local_b0;
  coff_symbols symbols;
  internal_auxent auxent;
  internal_syment syment;
  coff_types types;
  undefined4 local_1c [2];
  uint uStack_14;
  
  bVar19 = 0;
  uStack_14 = 0x27809;
  symbols.symno = 0;
  symbols.coff_symno = 0;
  symbols.syms = syms;
  types.slots = (coff_slots *)0x0;
  symbols.symcount = symcount;
  ppdVar5 = types.basic;
  do {
    *ppdVar5 = (debug_type)0x0;
    ppdVar5 = ppdVar5 + 1;
  } while ((debug_type *)local_1c != ppdVar5);
  if (symcount < 1) {
    return 1;
  }
  local_c4 = (debug_type)0x0;
  local_b0 = (alent *)0x0;
  local_bc = 0;
  local_b8 = 0;
  bVar3 = 0;
  local_c0 = (debug_type)0x0;
  local_d0 = (asymbol *)0xffffffff;
LAB_00027971:
  do {
    types_00 = (coff_types *)syms[symbols.symno];
    iVar6 = bfd_coff_get_syment(abfd,types_00,&syment);
    if (iVar6 == 0) {
      uVar10 = bfd_get_error();
      uVar10 = bfd_errmsg(uVar10);
      pcVar11 = "bfd_coff_get_syment failed: %s";
LAB_00027e3b:
      pcVar11 = (char *)dcgettext(0,pcVar11,5);
      non_fatal(pcVar11,uVar10);
      return 0;
    }
    pdVar7 = types_00->basic[0];
    local_d4 = (internal_auxent *)0x0;
    symbols.symno = symbols.symno + 1;
    iVar6 = symbols.coff_symno + 1 + (uint)syment.n_numaux;
    sym = (asymbol *)symbols.coff_symno;
    if ((syment.n_numaux != '\0') &&
       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),
       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)) {
      uVar10 = bfd_get_error();
      uVar10 = bfd_errmsg(uVar10);
      pcVar11 = "bfd_coff_get_auxent failed: %s";
      goto LAB_00027e3b;
    }
    symbols.coff_symno = iVar6;
    bVar4 = syment.n_sclass;
    if (sym == local_d0) {
      if (syment.n_sclass != 'g') {
        bVar8 = debug_set_filename(dhandle,"*globals*");
        bVar4 = syment.n_sclass;
        if (bVar8 == 0) {
          return 0;
        }
        goto joined_r0x00027c50;
      }
LAB_00027bcc:
      local_d0 = (asymbol *)syment.n_value;
      iVar6 = debug_set_filename(dhandle,(char *)pdVar7);
joined_r0x00027bec:
      if (iVar6 == 0) {
        return 0;
      }
LAB_00027960:
      if (symcount <= symbols.symno) {
        return 1;
      }
      goto LAB_00027971;
    }
joined_r0x00027c50:
    bVar18 = bVar4 == 100;
    bVar16 = bVar4 < 100;
    syment.n_sclass = bVar4;
    if (bVar18) {
      iVar6 = 4;
      pdVar13 = pdVar7;
      pbVar15 = &DAT_00033d5b;
      do {
        if (iVar6 == 0) break;
        iVar6 = iVar6 + -1;
        uVar1 = (undefined1)pdVar13->kind;
        bVar16 = (byte)uVar1 < *pbVar15;
        bVar18 = uVar1 == *pbVar15;
        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);
        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
      } while (bVar18);
      bVar17 = false;
      bVar16 = (!bVar16 && !bVar18) == bVar16;
      if (bVar16) {
        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +
                                          (int)&types_00->basic[1]->kind);
      }
      else {
        iVar6 = 4;
        pbVar15 = &DAT_00033d5f;
        do {
          if (iVar6 == 0) break;
          iVar6 = iVar6 + -1;
          uVar1 = (undefined1)pdVar7->kind;
          bVar17 = (byte)uVar1 < *pbVar15;
          bVar16 = uVar1 == *pbVar15;
          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);
          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
        } while (bVar16);
        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;
        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +
                                        (int)&types_00->basic[1]->kind);
      }
      goto joined_r0x00027bec;
    }
    if (bVar4 < 0x65) {
      if (bVar4 != 5) {
        if (bVar4 < 6) {
          if (bVar4 != 2) {
            if (bVar4 != 3) goto LAB_00027b18;
            if (syment.n_type == 0) goto LAB_00027960;
          }
LAB_000278e8:
          uVar14 = (uint)syment.n_type;
          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=
              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {
            paVar20 = sym;
            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);
            if (pdVar7 == (debug_type)0x0) {
              return 0;
            }
            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,
                                      (internal_syment *)dhandle,pdVar7,local_c4,
                                      (bfd_boolean)paVar20);
            goto joined_r0x00027bec;
          }
          local_bc = 0;
          if (syment.n_numaux != '\0') {
            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +
                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;
          }
          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);
          local_c0 = pdVar7;
          local_b8 = uVar14;
          bVar3 = bVar4;
        }
        else if ((bVar4 != 7) && (bVar4 != 0xe)) {
LAB_00027b18:
          paVar20 = sym;
          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,
                                   dhandle);
          if (pdVar7 == (debug_type)0x0) {
            return 0;
          }
          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,
                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)
          ;
          goto joined_r0x00027bec;
        }
      }
      goto LAB_00027960;
    }
    if (0x6a < bVar4) {
      if (bVar4 == 0x7f) goto LAB_000278e8;
      if (bVar4 != 0xff) goto LAB_00027b18;
      goto LAB_00027960;
    }
    if (0x67 < bVar4) goto LAB_00027960;
    bVar16 = bVar4 < 0x65;
    bVar18 = bVar4 == 0x65;
    if (!bVar18) {
      if (bVar4 == 0x67) goto LAB_00027bcc;
      goto LAB_00027b18;
    }
    iVar6 = 4;
    pdVar13 = pdVar7;
    pbVar15 = &DAT_00033d3e;
    do {
      if (iVar6 == 0) break;
      iVar6 = iVar6 + -1;
      uVar1 = (undefined1)pdVar13->kind;
      bVar16 = (byte)uVar1 < *pbVar15;
      bVar18 = uVar1 == *pbVar15;
      pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);
      pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
    } while (bVar18);
    bVar17 = false;
    bVar16 = (!bVar16 && !bVar18) == bVar16;
    if (!bVar16) {
      iVar6 = 4;
      pbVar15 = &DAT_00033d42;
      do {
        if (iVar6 == 0) break;
        iVar6 = iVar6 + -1;
        uVar1 = (undefined1)pdVar7->kind;
        bVar17 = (byte)uVar1 < *pbVar15;
        bVar16 = uVar1 == *pbVar15;
        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);
        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;
      } while (bVar16);
      if ((!bVar17 && !bVar16) == bVar17) {
        if (local_c4 == (debug_type)0x0) {
          pcVar11 = "%ld: unexpected .ef\n";
          goto LAB_00027ebd;
        }
        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;
        if (uVar14 < local_bc) {
          uVar14 = local_bc;
        }
        bVar8 = debug_end_function(dhandle,uVar14);
        if (bVar8 == 0) {
          return 0;
        }
        local_c4 = (debug_type)0x0;
        local_bc = 0;
      }
      goto LAB_00027960;
    }
    if (local_c0 == (debug_type)0x0) {
      pcVar11 = "%ld: .bf without preceding function";
LAB_00027ebd:
      pcVar11 = (char *)dcgettext(0,pcVar11,5);
      non_fatal(pcVar11,sym);
      return 0;
    }
    uVar14 = (int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f);
    pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,
                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^
                             uVar14,local_d4,0,dhandle);
    if (pdVar7 == (debug_type)0x0) {
      return 0;
    }
    uVar14 = 1;
    if (bVar3 != 2) {
      uVar14 = (uint)(bVar3 == 0x7f);
    }
    bVar8 = debug_record_function
                      (dhandle,(char *)local_c0,pdVar7,uVar14,
                       (int)&(types_00->basic[3][1].u.kindirect)->slot +
                       (int)&types_00->basic[1]->kind);
    if (bVar8 == 0) {
      return 0;
    }
    if (local_b0 != (alent *)0x0) {
      iVar6 = 0;
      if (syment.n_numaux != '\0') {
        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;
      }
      pdVar2 = types_00->basic[3][1].u.kindirect;
      paVar12 = local_b0 + 1;
      uVar14 = local_b0[1].line_number;
      while (uVar14 != 0) {
        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)
        ;
        if (bVar8 == 0) {
          return 0;
        }
        paVar12 = paVar12 + 1;
        uVar14 = paVar12->line_number;
      }
      local_b8 = 0;
      local_c4 = (debug_type)0x1;
      local_b0 = (alent *)0x0;
      local_c0 = (debug_type)0x0;
      bVar3 = 0;
      goto LAB_00027960;
    }
    local_b8 = 0;
    bVar3 = 0;
    local_c0 = (debug_type)0x0;
    local_c4 = (debug_type)0x1;
    if (symcount <= symbols.symno) {
      return 1;
    }
  } while( true );
}



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

undefined4 FUN_00027800(int param_1,int param_2,int param_3,undefined4 param_4)

{
  byte bVar1;
  byte bVar2;
  undefined4 *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  char *pcVar8;
  undefined4 uVar9;
  int iVar10;
  int *piVar11;
  byte *pbVar12;
  byte *pbVar13;
  byte *pbVar14;
  uint uVar15;
  bool bVar16;
  bool bVar17;
  bool bVar18;
  byte bVar19;
  undefined1 *local_d4;
  int local_d0;
  int local_c4;
  byte *local_c0;
  uint local_bc;
  uint local_b8;
  int local_b0;
  int local_98;
  int local_94;
  undefined1 local_90 [4];
  uint local_8c;
  undefined1 local_7c [8];
  int local_74;
  ushort local_6a;
  byte local_68;
  byte local_67;
  undefined4 local_64;
  undefined4 local_60 [17];
  undefined4 local_1c [2];
  undefined4 uStack_14;
  
  bVar19 = 0;
  uStack_14 = 0x27809;
  local_98 = 0;
  local_94 = 0;
  local_64 = 0;
  puVar3 = local_60;
  do {
    *puVar3 = 0;
    puVar3 = puVar3 + 1;
  } while (local_1c != puVar3);
  if (param_3 < 1) {
    return 1;
  }
  local_c4 = 0;
  local_b0 = 0;
  local_bc = 0;
  local_b8 = 0;
  bVar1 = 0;
  local_c0 = (byte *)0x0;
  local_d0 = -1;
LAB_00027971:
  do {
    iVar5 = *(int *)(param_2 + local_98 * 4);
    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);
    if (iVar4 == 0) {
      uVar9 = bfd_get_error();
      uVar9 = bfd_errmsg(uVar9);
      pcVar8 = "bfd_coff_get_syment failed: %s";
LAB_00027e3b:
      uVar7 = dcgettext(0,pcVar8,5);
      FUN_0002b6d0(uVar7,uVar9);
      return 0;
    }
    pbVar13 = *(byte **)(iVar5 + 4);
    local_d4 = (undefined1 *)0x0;
    local_98 = local_98 + 1;
    iVar4 = local_94 + 1 + (uint)local_67;
    if ((local_67 != 0) &&
       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {
      uVar9 = bfd_get_error();
      uVar9 = bfd_errmsg(uVar9);
      pcVar8 = "bfd_coff_get_auxent failed: %s";
      goto LAB_00027e3b;
    }
    bVar2 = local_68;
    if (local_94 == local_d0) {
      if (local_68 != 0x67) {
        iVar10 = FUN_0001e300(param_4,"*globals*");
        bVar2 = local_68;
        if (iVar10 == 0) {
          return 0;
        }
        goto joined_r0x00027c50;
      }
LAB_00027bcc:
      local_d0 = local_74;
      iVar5 = FUN_0001e300(param_4,pbVar13);
joined_r0x00027bec:
      if (iVar5 == 0) {
        return 0;
      }
LAB_00027960:
      local_94 = iVar4;
      if (param_3 <= local_98) {
        return 1;
      }
      goto LAB_00027971;
    }
joined_r0x00027c50:
    bVar18 = bVar2 == 100;
    bVar16 = bVar2 < 100;
    local_68 = bVar2;
    if (bVar18) {
      iVar10 = 4;
      pbVar12 = pbVar13;
      pbVar14 = &DAT_00033d5b;
      do {
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        bVar16 = *pbVar12 < *pbVar14;
        bVar18 = *pbVar12 == *pbVar14;
        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;
        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
      } while (bVar18);
      bVar17 = false;
      bVar16 = (!bVar16 && !bVar18) == bVar16;
      if (bVar16) {
        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));
      }
      else {
        iVar10 = 4;
        pbVar12 = &DAT_00033d5f;
        do {
          if (iVar10 == 0) break;
          iVar10 = iVar10 + -1;
          bVar17 = *pbVar13 < *pbVar12;
          bVar16 = *pbVar13 == *pbVar12;
          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;
          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;
        } while (bVar16);
        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;
        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));
      }
      goto joined_r0x00027bec;
    }
    if (bVar2 < 0x65) {
      if (bVar2 != 5) {
        if (bVar2 < 6) {
          if (bVar2 != 2) {
            if (bVar2 != 3) goto LAB_00027b18;
            if (local_6a == 0) goto LAB_00027960;
          }
LAB_000278e8:
          uVar15 = (uint)local_6a;
          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=
              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {
            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);
            if (iVar5 == 0) {
              return 0;
            }
            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);
            goto joined_r0x00027bec;
          }
          local_bc = 0;
          if (local_67 != 0) {
            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);
          }
          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);
          local_c0 = pbVar13;
          local_b8 = uVar15;
          bVar1 = bVar2;
        }
        else if ((bVar2 != 7) && (bVar2 != 0xe)) {
LAB_00027b18:
          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);
          if (iVar5 == 0) {
            return 0;
          }
          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);
          goto joined_r0x00027bec;
        }
      }
      goto LAB_00027960;
    }
    if (0x6a < bVar2) {
      if (bVar2 == 0x7f) goto LAB_000278e8;
      if (bVar2 != 0xff) goto LAB_00027b18;
      goto LAB_00027960;
    }
    if (0x67 < bVar2) goto LAB_00027960;
    bVar16 = bVar2 < 0x65;
    bVar18 = bVar2 == 0x65;
    if (!bVar18) {
      if (bVar2 == 0x67) goto LAB_00027bcc;
      goto LAB_00027b18;
    }
    iVar10 = 4;
    pbVar12 = pbVar13;
    pbVar14 = &DAT_00033d3e;
    do {
      if (iVar10 == 0) break;
      iVar10 = iVar10 + -1;
      bVar16 = *pbVar12 < *pbVar14;
      bVar18 = *pbVar12 == *pbVar14;
      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;
      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
    } while (bVar18);
    bVar17 = false;
    bVar16 = (!bVar16 && !bVar18) == bVar16;
    if (!bVar16) {
      iVar10 = 4;
      pbVar12 = &DAT_00033d42;
      do {
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        bVar17 = *pbVar13 < *pbVar12;
        bVar16 = *pbVar13 == *pbVar12;
        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;
        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;
      } while (bVar16);
      if ((!bVar17 && !bVar16) == bVar17) {
        if (local_c4 == 0) {
          pcVar8 = "%ld: unexpected .ef\n";
          goto LAB_00027ebd;
        }
        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);
        if (uVar15 < local_bc) {
          uVar15 = local_bc;
        }
        iVar5 = FUN_0001e6d0(param_4,uVar15);
        if (iVar5 == 0) {
          return 0;
        }
        local_c4 = 0;
        local_bc = 0;
      }
      goto LAB_00027960;
    }
    if (local_c0 == (byte *)0x0) {
      pcVar8 = "%ld: .bf without preceding function";
LAB_00027ebd:
      uVar9 = dcgettext(0,pcVar8,5);
      FUN_0002b6d0(uVar9,local_94);
      return 0;
    }
    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);
    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)
                                   ^ uVar15,local_d4,0,param_4);
    if (iVar10 == 0) {
      return 0;
    }
    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,
                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));
    if (iVar10 == 0) {
      return 0;
    }
    if (local_b0 != 0) {
      iVar10 = 0;
      if (local_67 != 0) {
        iVar10 = (local_8c & 0xffff) - 1;
      }
      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);
      piVar11 = (int *)(local_b0 + 8);
      iVar6 = *(int *)(local_b0 + 8);
      while (iVar6 != 0) {
        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);
        if (iVar6 == 0) {
          return 0;
        }
        piVar11 = piVar11 + 2;
        iVar6 = *piVar11;
      }
      local_b8 = 0;
      local_c4 = 1;
      local_b0 = 0;
      local_c0 = (byte *)0x0;
      bVar1 = 0;
      goto LAB_00027960;
    }
    local_b8 = 0;
    bVar1 = 0;
    local_c0 = (byte *)0x0;
    local_c4 = 1;
    local_94 = iVar4;
    if (param_3 <= local_98) {
      return 1;
    }
  } while( true );
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000165d0
ADD EBX,0x177f7
SUB ESP,0xcc
MOV EAX,dword ptr [ESP + 0xe4]
MOV dword ptr [ESP + 0x44],0x0
LEA EDX,[ESP + 0xc0]
MOV dword ptr [ESP + 0x48],0x0
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESP + 0xe8]
MOV dword ptr [ESP + 0x78],0x0
MOV dword ptr [ESP + 0x40],EAX
LEA EAX,[ESP + 0x7c]
MOV dword ptr [EAX],0x0
ADD EAX,0x4
CMP EDX,EAX
JNZ 0x0002784e
MOV EAX,dword ptr [ESP + 0xe8]
TEST EAX,EAX
JLE 0x00027b00
LEA ESI,[ESP + 0x60]
MOV dword ptr [ESP + 0x18],0x0
XOR EAX,EAX
MOV dword ptr [ESP + 0x10],ESI
LEA ESI,[ESP + 0x4c]
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0xc],0xffffffff
MOV dword ptr [ESP + 0x14],ESI
JMP 0x00027971
CMP AL,0x5
JZ 0x00027960
JA 0x00027bb0
CMP AL,0x2
JZ 0x00027b94
CMP AL,0x3
JNZ 0x00027b18
MOVZX ESI,word ptr [ESP + 0x72]
TEST SI,SI
JZ 0x00027960
MOV EDX,dword ptr [ESP + 0xe0]
MOV EDX,dword ptr [EDX + 0x9c]
MOV EDI,dword ptr [EDX + 0x28]
MOV ECX,dword ptr [EDX + 0x24]
MOV EDX,0x2
AND EDI,ESI
SHL EDX,CL
CMP EDI,EDX
JNZ 0x00027cc8
CMP byte ptr [ESP + 0x75],0x0
MOV dword ptr [ESP + 0x20],0x0
JZ 0x0002792c
MOV ECX,dword ptr [EBP + 0x10]
MOV EDX,dword ptr [ESP + 0x50]
ADD EDX,dword ptr [EBP + 0x8]
ADD EDX,dword ptr [ECX + 0x1c]
MOV dword ptr [ESP + 0x20],EDX
MOV dword ptr [ESP + 0x28],EAX
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0xe8]
MOV EAX,dword ptr [EAX + 0x4]
PUSH EBP
PUSH dword ptr [ESP + 0xec]
CALL dword ptr [EAX + 0x124]
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x24],ESI
MOV dword ptr [ESP + 0x1c],EAX
NOP
MOV EAX,dword ptr [ESP + 0x44]
CMP EAX,dword ptr [ESP + 0xe8]
JGE 0x00027b00
MOV ECX,dword ptr [ESP + 0xe4]
SUB ESP,0x4
MOV EBP,dword ptr [ECX + EAX*0x4]
PUSH dword ptr [ESP + 0x14]
PUSH EBP
PUSH dword ptr [ESP + 0xec]
CALL 0x00013670
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00027e20
MOV EAX,dword ptr [EBP + 0x4]
MOVZX EDX,byte ptr [ESP + 0x75]
MOV dword ptr [ESP + 0x8],0x0
ADD dword ptr [ESP + 0x44],0x1
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x48]
MOV EDI,EAX
MOV dword ptr [ESP],EAX
MOV EAX,EDX
LEA EDX,[EDI + EDX*0x1 + 0x1]
MOV dword ptr [ESP + 0x48],EDX
TEST AL,AL
JNZ 0x00027bf8
MOVZX EAX,byte ptr [ESP + 0x74]
MOV ECX,dword ptr [ESP + 0xc]
CMP dword ptr [ESP],ECX
JZ 0x00027bc8
CMP AL,0x64
JZ 0x00027c60
JBE 0x000278c0
CMP AL,0x6a
JA 0x00027b90
CMP AL,0x68
JNC 0x00027960
CMP AL,0x65
JNZ 0x00027b10
MOV ESI,dword ptr [ESP + 0x4]
MOV ECX,0x4
LEA EDI,[EBX + 0xffff4d3e]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00027d30
MOV EAX,dword ptr [ESP + 0x1c]
TEST EAX,EAX
JZ 0x00027eb2
MOV EAX,dword ptr [ESP + 0xe0]
LEA EDX,[ESP + 0x3c]
MOV ESI,dword ptr [EAX + 0x9c]
MOV EAX,dword ptr [ESP + 0x24]
MOV ECX,dword ptr [ESI + 0x2c]
MOV EDI,EAX
SAR EDI,CL
LEA ECX,[ESP + 0x78]
SUB ESP,0xc
PUSH dword ptr [ESP + 0xf8]
XOR EAX,EDI
PUSH 0x0
AND EAX,dword ptr [ESI + 0x20]
PUSH dword ptr [ESP + 0x1c]
XOR EAX,EDI
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x100]
CALL 0x00026ea0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00027b7e
MOV ECX,dword ptr [EBP + 0x10]
MOV ESI,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [EBP + 0x8]
ADD EDX,dword ptr [ECX + 0x1c]
MOV ECX,0x1
CMP ESI,0x2
JZ 0x00027aa2
XOR ECX,ECX
CMP ESI,0x7f
SETZ CL
SUB ESP,0xc
PUSH EDX
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x108]
CALL 0x0001e4c0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00027b7e
MOV EDI,dword ptr [ESP + 0x2c]
TEST EDI,EDI
JNZ 0x00027dd0
MOV dword ptr [ESP + 0x24],0x0
MOV EAX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x18],0x1
CMP EAX,dword ptr [ESP + 0xe8]
JL 0x00027971
ADD ESP,0xcc
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0x67
JZ 0x00027bcc
LEA ESI,[ESP + 0x78]
LEA EDX,[ESP + 0x3c]
SUB ESP,0xc
PUSH dword ptr [ESP + 0xf8]
MOV ECX,ESI
PUSH 0x1
PUSH dword ptr [ESP + 0x1c]
MOVZX EAX,word ptr [ESP + 0x8a]
PUSH EAX
MOV EDI,dword ptr [ESP + 0x1c]
PUSH EDI
MOV EAX,dword ptr [ESP + 0x100]
CALL 0x00026ea0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00027b7e
PUSH dword ptr [ESP + 0x18]
MOV ECX,EDI
MOV EDX,EBP
PUSH EAX
PUSH dword ptr [ESP + 0xf4]
MOVZX EAX,byte ptr [ESP + 0x80]
PUSH EAX
MOV EAX,ESI
CALL 0x00026cf0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00027960
ADD ESP,0xcc
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0x7f
JNZ 0x00027ba0
MOVZX ESI,word ptr [ESP + 0x72]
JMP 0x000278e8
CMP AL,0xff
JNZ 0x00027b18
JMP 0x00027960
CMP AL,0x7
JZ 0x00027960
CMP AL,0xe
JNZ 0x00027b18
JMP 0x00027960
CMP AL,0x67
JNZ 0x00027c28
MOV EAX,dword ptr [ESP + 0x68]
SUB ESP,0x8
MOV dword ptr [ESP + 0x14],EAX
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0xf8]
CALL 0x0001e300
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00027960
JMP 0x00027b7e
PUSH dword ptr [ESP + 0x14]
PUSH 0x0
PUSH EBP
PUSH dword ptr [ESP + 0xec]
CALL 0x00013570
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00027e95
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x8],EAX
JMP 0x000279ce
SUB ESP,0x8
LEA EAX,[EBX + 0xffff4d34]
PUSH EAX
PUSH dword ptr [ESP + 0xf8]
CALL 0x0001e300
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00027b7e
MOVZX EAX,byte ptr [ESP + 0x74]
CMP AL,0x64
JNZ 0x000279e8
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV ESI,dword ptr [ESP + 0x4]
MOV ECX,0x4
LEA EDI,[EBX + 0xffff4d5b]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00027da0
MOV ESI,dword ptr [ESP + 0x4]
MOV ECX,0x4
LEA EDI,[EBX + 0xffff4d5f]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00027960
MOV EDX,dword ptr [EBP + 0x10]
SUB ESP,0x8
MOV EAX,dword ptr [EBP + 0x8]
ADD EAX,dword ptr [EDX + 0x1c]
PUSH EAX
PUSH dword ptr [ESP + 0xf8]
CALL 0x0001e850
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00027960
JMP 0x00027b7e
LEA EDI,[ESP + 0x78]
LEA EDX,[ESP + 0x3c]
SUB ESP,0xc
PUSH dword ptr [ESP + 0xf8]
MOV ECX,EDI
PUSH 0x1
PUSH dword ptr [ESP + 0x1c]
PUSH ESI
MOV ESI,dword ptr [ESP + 0x1c]
PUSH ESI
MOV EAX,dword ptr [ESP + 0x100]
CALL 0x00026ea0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00027b7e
PUSH dword ptr [ESP + 0x18]
MOV ECX,ESI
MOV EDX,EBP
PUSH EAX
PUSH dword ptr [ESP + 0xf4]
MOVZX EAX,byte ptr [ESP + 0x80]
PUSH EAX
MOV EAX,EDI
CALL 0x00026cf0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00027960
JMP 0x00027b7e
MOV ESI,dword ptr [ESP + 0x4]
MOV ECX,0x4
LEA EDI,[EBX + 0xffff4d42]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00027960
MOV ESI,dword ptr [ESP + 0x18]
TEST ESI,ESI
JZ 0x00027ed9
SUB ESP,0x8
MOV EDX,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [ESP + 0x28]
ADD EAX,dword ptr [EDX + 0x1c]
CMP EAX,ESI
CMOVC EAX,ESI
PUSH EAX
PUSH dword ptr [ESP + 0xf8]
CALL 0x0001e6d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00027b7e
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x20],0x0
JMP 0x00027960
MOV EDX,dword ptr [EBP + 0x10]
SUB ESP,0x8
MOV EAX,dword ptr [EBP + 0x8]
ADD EAX,dword ptr [EDX + 0x1c]
PUSH EAX
PUSH dword ptr [ESP + 0xf8]
CALL 0x0001e770
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00027960
JMP 0x00027b7e
XOR ESI,ESI
CMP byte ptr [ESP + 0x75],0x0
JNZ 0x00027e58
MOV EAX,dword ptr [EBP + 0x10]
MOV EDI,dword ptr [EAX + 0x1c]
MOV EAX,dword ptr [ESP + 0x2c]
LEA EBP,[EAX + 0x8]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JNZ 0x00027dfa
JMP 0x00027e68
ADD EBP,0x8
MOV EAX,dword ptr [EBP]
TEST EAX,EAX
JZ 0x00027e68
MOV ECX,dword ptr [EBP + 0x4]
SUB ESP,0x4
ADD EAX,ESI
ADD ECX,EDI
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0xf8]
CALL 0x0001e8e0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00027df0
JMP 0x00027b7e
CALL 0x000132b0
SUB ESP,0xc
PUSH EAX
CALL 0x000137b0
ADD ESP,0xc
PUSH 0x5
MOV ESI,EAX
LEA EAX,[EBX + 0xffff4cd0]
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002b6d0
ADD ESP,0x10
JMP 0x00027b7e
MOVZX ESI,word ptr [ESP + 0x50]
SUB ESI,0x1
JMP 0x00027dd9
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x18],0x1
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x1c],0x0
JMP 0x00027960
CALL 0x000132b0
SUB ESP,0xc
PUSH EAX
CALL 0x000137b0
ADD ESP,0xc
MOV ESI,EAX
PUSH 0x5
LEA EAX,[EBX + 0xffff4cf0]
JMP 0x00027e3b
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4d10]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x8]
PUSH EAX
CALL 0x0002b6d0
ADD ESP,0x10
JMP 0x00027b7e
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4d46]
PUSH 0x5
JMP 0x00027ebd
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00027800(int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined1 *local_d4;\n  int local_d0;\n  int local_c4;\n  byte *local_c0;\n  uint local_bc;\n  uint local_b8;\n  int local_b0;\n  int local_98;\n  int local_94;\n  undefined1 local_90 [4];\n  uint local_8c;\n  undefined1 local_7c [8];\n  int local_74;\n  ushort local_6a;\n  byte local_68;\n  byte local_67;\n  undefined4 local_64;\n  undefined4 local_60 [17];\n  undefined4 local_1c [2];\n  undefined4 uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  local_98 = 0;\n  local_94 = 0;\n  local_64 = 0;\n  puVar3 = local_60;\n  do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);\n  if (param_3 < 1) {\n    return 1;\n  }\n  local_c4 = 0;\n  local_b0 = 0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar1 = 0;\n  local_c0 = (byte *)0x0;\n  local_d0 = -1;\nLAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );\n}\n\n" comment (function_definition "undefined4 FUN_00027800(int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined1 *local_d4;\n  int local_d0;\n  int local_c4;\n  byte *local_c0;\n  uint local_bc;\n  uint local_b8;\n  int local_b0;\n  int local_98;\n  int local_94;\n  undefined1 local_90 [4];\n  uint local_8c;\n  undefined1 local_7c [8];\n  int local_74;\n  ushort local_6a;\n  byte local_68;\n  byte local_67;\n  undefined4 local_64;\n  undefined4 local_60 [17];\n  undefined4 local_1c [2];\n  undefined4 uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  local_98 = 0;\n  local_94 = 0;\n  local_64 = 0;\n  puVar3 = local_60;\n  do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);\n  if (param_3 < 1) {\n    return 1;\n  }\n  local_c4 = 0;\n  local_b0 = 0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar1 = 0;\n  local_c0 = (byte *)0x0;\n  local_d0 = -1;\nLAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_00027800(int param_1,int param_2,int param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined1 *local_d4;\n  int local_d0;\n  int local_c4;\n  byte *local_c0;\n  uint local_bc;\n  uint local_b8;\n  int local_b0;\n  int local_98;\n  int local_94;\n  undefined1 local_90 [4];\n  uint local_8c;\n  undefined1 local_7c [8];\n  int local_74;\n  ushort local_6a;\n  byte local_68;\n  byte local_67;\n  undefined4 local_64;\n  undefined4 local_60 [17];\n  undefined4 local_1c [2];\n  undefined4 uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  local_98 = 0;\n  local_94 = 0;\n  local_64 = 0;\n  puVar3 = local_60;\n  do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);\n  if (param_3 < 1) {\n    return 1;\n  }\n  local_c4 = 0;\n  local_b0 = 0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar1 = 0;\n  local_c0 = (byte *)0x0;\n  local_d0 = -1;\nLAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined1 *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "byte *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "uint local_bc;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "undefined1 local_90 [4];" type_identifier (array_declarator "local_90 [4]" identifier [ number_literal ]) ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "undefined1 local_7c [8];" type_identifier (array_declarator "local_7c [8]" identifier [ number_literal ]) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "ushort local_6a;" type_identifier identifier ;) (declaration "byte local_68;" type_identifier identifier ;) (declaration "byte local_67;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60 [17];" type_identifier (array_declarator "local_60 [17]" identifier [ number_literal ]) ;) (declaration "undefined4 local_1c [2];" type_identifier (array_declarator "local_1c [2]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x27809;" (assignment_expression "uStack_14 = 0x27809" identifier = number_literal) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" identifier = identifier) ;) (do_statement "do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);" do (compound_statement "{\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  }" { (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar3 = puVar3 + 1;" (assignment_expression "puVar3 = puVar3 + 1" identifier = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_1c != puVar3)" ( (binary_expression "local_1c != puVar3" identifier != identifier) )) ;) (if_statement "if (param_3 < 1) {\n    return 1;\n  }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (byte *)0x0;" (assignment_expression "local_c0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = -1;" (assignment_expression "local_d0 = -1" identifier = number_literal) ;) (labeled_statement "LAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  }" { (expression_statement "iVar5 = *(int *)(param_2 + local_98 * 4);" (assignment_expression "iVar5 = *(int *)(param_2 + local_98 * 4)" identifier = (pointer_expression "*(int *)(param_2 + local_98 * 4)" * (cast_expression "(int *)(param_2 + local_98 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + local_98 * 4)" ( (binary_expression "param_2 + local_98 * 4" identifier + (binary_expression "local_98 * 4" identifier * number_literal)) ))))) ;) (expression_statement "iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);" (assignment_expression "iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c)" identifier = (call_expression "bfd_coff_get_syment(param_1,iVar5,local_7c)" identifier (argument_list "(param_1,iVar5,local_7c)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }" { (expression_statement "uVar9 = bfd_get_error();" (assignment_expression "uVar9 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = bfd_errmsg(uVar9);" (assignment_expression "uVar9 = bfd_errmsg(uVar9)" identifier = (call_expression "bfd_errmsg(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "pcVar8 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002b6d0(uVar7,uVar9);" (call_expression "FUN_0002b6d0(uVar7,uVar9)" identifier (argument_list "(uVar7,uVar9)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar13 = *(byte **)(iVar5 + 4);" (assignment_expression "pbVar13 = *(byte **)(iVar5 + 4)" identifier = (pointer_expression "*(byte **)(iVar5 + 4)" * (cast_expression "(byte **)(iVar5 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_d4 = (undefined1 *)0x0;" (assignment_expression "local_d4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = local_94 + 1 + (uint)local_67;" (assignment_expression "iVar4 = local_94 + 1 + (uint)local_67" identifier = (binary_expression "local_94 + 1 + (uint)local_67" (binary_expression "local_94 + 1" identifier + number_literal) + (cast_expression "(uint)local_67" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }" if (parenthesized_expression "((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0))" ( (binary_expression "(local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)" (parenthesized_expression "(local_67 != 0)" ( (binary_expression "local_67 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)" ( (comma_expression "iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0" (assignment_expression "iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90)" identifier = (call_expression "bfd_coff_get_auxent(param_1,iVar5,0,local_90)" identifier (argument_list "(param_1,iVar5,0,local_90)" ( identifier , identifier , number_literal , identifier )))) , (comma_expression "local_d4 = local_90, iVar10 == 0" (assignment_expression "local_d4 = local_90" identifier = identifier) , (binary_expression "iVar10 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }" { (expression_statement "uVar9 = bfd_get_error();" (assignment_expression "uVar9 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = bfd_errmsg(uVar9);" (assignment_expression "uVar9 = bfd_errmsg(uVar9)" identifier = (call_expression "bfd_errmsg(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "pcVar8 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_00027e3b;" goto statement_identifier ;) })) (expression_statement "bVar2 = local_68;" (assignment_expression "bVar2 = local_68" identifier = identifier) ;) (if_statement "if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }" if (parenthesized_expression "(local_94 == local_d0)" ( (binary_expression "local_94 == local_d0" identifier == identifier) )) (compound_statement "{\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }" { (if_statement "if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }" if (parenthesized_expression "(local_68 != 0x67)" ( (binary_expression "local_68 != 0x67" identifier != number_literal) )) (compound_statement "{\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }" { (expression_statement "iVar10 = FUN_0001e300(param_4,"*globals*");" (assignment_expression "iVar10 = FUN_0001e300(param_4,"*globals*")" identifier = (call_expression "FUN_0001e300(param_4,"*globals*")" identifier (argument_list "(param_4,"*globals*")" ( identifier , (string_literal ""*globals*"" " string_content ") )))) ;) (expression_statement "bVar2 = local_68;" (assignment_expression "bVar2 = local_68" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto joined_r0x00027c50;" goto statement_identifier ;) })) (labeled_statement "LAB_00027bcc:\n      local_d0 = local_74;" statement_identifier : (expression_statement "local_d0 = local_74;" (assignment_expression "local_d0 = local_74" identifier = identifier) ;)) (expression_statement "iVar5 = FUN_0001e300(param_4,pbVar13);" (assignment_expression "iVar5 = FUN_0001e300(param_4,pbVar13)" identifier = (call_expression "FUN_0001e300(param_4,pbVar13)" identifier (argument_list "(param_4,pbVar13)" ( identifier , identifier )))) ;) (labeled_statement "joined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }" statement_identifier : (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) }))) (labeled_statement "LAB_00027960:\n      local_94 = iVar4;" statement_identifier : (expression_statement "local_94 = iVar4;" (assignment_expression "local_94 = iVar4" identifier = identifier) ;)) (if_statement "if (param_3 <= local_98) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 <= local_98)" ( (binary_expression "param_3 <= local_98" identifier <= identifier) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00027971;" goto statement_identifier ;) })) (labeled_statement "joined_r0x00027c50:\n    bVar18 = bVar2 == 100;" statement_identifier : (expression_statement "bVar18 = bVar2 == 100;" (assignment_expression "bVar18 = bVar2 == 100" identifier = (binary_expression "bVar2 == 100" identifier == number_literal)) ;)) (expression_statement "bVar16 = bVar2 < 100;" (assignment_expression "bVar16 = bVar2 < 100" identifier = (binary_expression "bVar2 < 100" identifier < number_literal)) ;) (expression_statement "local_68 = bVar2;" (assignment_expression "local_68 = bVar2" identifier = identifier) ;) (if_statement "if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }" { (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_00033d5b;" (assignment_expression "pbVar14 = &DAT_00033d5b" identifier = (pointer_expression "&DAT_00033d5b" & identifier)) ;) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar12 < *pbVar14;" (assignment_expression "bVar16 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar12 == *pbVar14;" (assignment_expression "bVar18 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" { (expression_statement "iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));" (assignment_expression "iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier = (call_expression "FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier (argument_list "(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" ( identifier , (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )))) ;) }) (else_clause "else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" else (compound_statement "{\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" { (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar12 = &DAT_00033d5f;" (assignment_expression "pbVar12 = &DAT_00033d5f" identifier = (pointer_expression "&DAT_00033d5f" & identifier)) ;) (do_statement "do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);" do (compound_statement "{\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar12;" (assignment_expression "bVar17 = *pbVar13 < *pbVar12" identifier = (binary_expression "*pbVar13 < *pbVar12" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar12;" (assignment_expression "bVar16 = *pbVar13 == *pbVar12" identifier = (binary_expression "*pbVar13 == *pbVar12" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;" if (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" ( (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00027960;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));" (assignment_expression "iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier = (call_expression "FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier (argument_list "(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" ( identifier , (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )))) ;) }))) (goto_statement "goto joined_r0x00027bec;" goto statement_identifier ;) })) (if_statement "if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(bVar2 < 0x65)" ( (binary_expression "bVar2 < 0x65" identifier < number_literal) )) (compound_statement "{\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }" { (if_statement "if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }" if (parenthesized_expression "(bVar2 != 5)" ( (binary_expression "bVar2 != 5" identifier != number_literal) )) (compound_statement "{\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }" { (if_statement "if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" if (parenthesized_expression "(bVar2 < 6)" ( (binary_expression "bVar2 < 6" identifier < number_literal) )) (compound_statement "{\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }" { (if_statement "if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }" if (parenthesized_expression "(bVar2 != 2)" ( (binary_expression "bVar2 != 2" identifier != number_literal) )) (compound_statement "{\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }" { (if_statement "if (bVar2 != 3) goto LAB_00027b18;" if (parenthesized_expression "(bVar2 != 3)" ( (binary_expression "bVar2 != 3" identifier != number_literal) )) (goto_statement "goto LAB_00027b18;" goto statement_identifier ;)) (if_statement "if (local_6a == 0) goto LAB_00027960;" if (parenthesized_expression "(local_6a == 0)" ( (binary_expression "local_6a == 0" identifier == number_literal) )) (goto_statement "goto LAB_00027960;" goto statement_identifier ;)) })) (labeled_statement "LAB_000278e8:\n          uVar15 = (uint)local_6a;" statement_identifier : (expression_statement "uVar15 = (uint)local_6a;" (assignment_expression "uVar15 = (uint)local_6a" identifier = (cast_expression "(uint)local_6a" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (if_statement "if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }" if (parenthesized_expression "((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f))" ( (binary_expression "(*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)" (parenthesized_expression "(*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15)" ( (binary_expression "*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15" (pointer_expression "*(uint *)(*(int *)(param_1 + 0x9c) + 0x28)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x9c) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x9c) + 0x28" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) + number_literal) )))) & identifier) )) != (binary_expression "2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)" number_literal << (parenthesized_expression "((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)" ( (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f" (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x24)" ( (binary_expression "*(int *)(param_1 + 0x9c) + 0x24" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )))) )) (compound_statement "{\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }" { (expression_statement "iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);" (assignment_expression "iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4)" identifier = (call_expression "FUN_00026ea0(local_94,uVar15,local_d4,1,param_4)" identifier (argument_list "(local_94,uVar15,local_d4,1,param_4)" ( identifier , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);" (assignment_expression "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4)" identifier = (call_expression "FUN_00026cf0(local_68,param_4,iVar5,local_c4)" identifier (argument_list "(local_68,param_4,iVar5,local_c4)" ( identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto joined_r0x00027bec;" goto statement_identifier ;) })) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (if_statement "if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }" if (parenthesized_expression "(local_67 != 0)" ( (binary_expression "local_67 != 0" identifier != number_literal) )) (compound_statement "{\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }" { (expression_statement "local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);" (assignment_expression "local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" identifier = (binary_expression "local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (binary_expression "local_8c + *(int *)(iVar5 + 8)" identifier + (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) ))))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);" (assignment_expression "local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5)" identifier = (call_expression "(**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5)" (parenthesized_expression "(**(code **)(*(int *)(param_1 + 4) + 0x124))" ( (pointer_expression "**(code **)(*(int *)(param_1 + 4) + 0x124)" * (pointer_expression "*(code **)(*(int *)(param_1 + 4) + 0x124)" * (cast_expression "(code **)(*(int *)(param_1 + 4) + 0x124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0x124)" ( (binary_expression "*(int *)(param_1 + 4) + 0x124" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1,iVar5)" ( identifier , identifier )))) ;) (expression_statement "local_c0 = pbVar13;" (assignment_expression "local_c0 = pbVar13" identifier = identifier) ;) (expression_statement "local_b8 = uVar15;" (assignment_expression "local_b8 = uVar15" identifier = identifier) ;) (expression_statement "bVar1 = bVar2;" (assignment_expression "bVar1 = bVar2" identifier = identifier) ;) }) (else_clause "else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" else (if_statement "if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" if (parenthesized_expression "((bVar2 != 7) && (bVar2 != 0xe))" ( (binary_expression "(bVar2 != 7) && (bVar2 != 0xe)" (parenthesized_expression "(bVar2 != 7)" ( (binary_expression "bVar2 != 7" identifier != number_literal) )) && (parenthesized_expression "(bVar2 != 0xe)" ( (binary_expression "bVar2 != 0xe" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" { (labeled_statement "LAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);" statement_identifier : (expression_statement "iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);" (assignment_expression "iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4)" identifier = (call_expression "FUN_00026ea0(local_94,local_6a,local_d4,1,param_4)" identifier (argument_list "(local_94,local_6a,local_d4,1,param_4)" ( identifier , identifier , identifier , number_literal , identifier )))) ;)) (if_statement "if (iVar5 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);" (assignment_expression "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4)" identifier = (call_expression "FUN_00026cf0(local_68,param_4,iVar5,local_c4)" identifier (argument_list "(local_68,param_4,iVar5,local_c4)" ( identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto joined_r0x00027bec;" goto statement_identifier ;) })))) })) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (if_statement "if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(0x6a < bVar2)" ( (binary_expression "0x6a < bVar2" number_literal < identifier) )) (compound_statement "{\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }" { (if_statement "if (bVar2 == 0x7f) goto LAB_000278e8;" if (parenthesized_expression "(bVar2 == 0x7f)" ( (binary_expression "bVar2 == 0x7f" identifier == number_literal) )) (goto_statement "goto LAB_000278e8;" goto statement_identifier ;)) (if_statement "if (bVar2 != 0xff) goto LAB_00027b18;" if (parenthesized_expression "(bVar2 != 0xff)" ( (binary_expression "bVar2 != 0xff" identifier != number_literal) )) (goto_statement "goto LAB_00027b18;" goto statement_identifier ;)) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (if_statement "if (0x67 < bVar2) goto LAB_00027960;" if (parenthesized_expression "(0x67 < bVar2)" ( (binary_expression "0x67 < bVar2" number_literal < identifier) )) (goto_statement "goto LAB_00027960;" goto statement_identifier ;)) (expression_statement "bVar16 = bVar2 < 0x65;" (assignment_expression "bVar16 = bVar2 < 0x65" identifier = (binary_expression "bVar2 < 0x65" identifier < number_literal)) ;) (expression_statement "bVar18 = bVar2 == 0x65;" (assignment_expression "bVar18 = bVar2 == 0x65" identifier = (binary_expression "bVar2 == 0x65" identifier == number_literal)) ;) (if_statement "if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }" { (if_statement "if (bVar2 == 0x67) goto LAB_00027bcc;" if (parenthesized_expression "(bVar2 == 0x67)" ( (binary_expression "bVar2 == 0x67" identifier == number_literal) )) (goto_statement "goto LAB_00027bcc;" goto statement_identifier ;)) (goto_statement "goto LAB_00027b18;" goto statement_identifier ;) })) (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_00033d3e;" (assignment_expression "pbVar14 = &DAT_00033d3e" identifier = (pointer_expression "&DAT_00033d3e" & identifier)) ;) (do_statement "do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);" do (compound_statement "{\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar12 < *pbVar14;" (assignment_expression "bVar16 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar12 == *pbVar14;" (assignment_expression "bVar18 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }" { (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar12 = &DAT_00033d42;" (assignment_expression "pbVar12 = &DAT_00033d42" identifier = (pointer_expression "&DAT_00033d42" & identifier)) ;) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);" do (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar12;" (assignment_expression "bVar17 = *pbVar13 < *pbVar12" identifier = (binary_expression "*pbVar13 < *pbVar12" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar12;" (assignment_expression "bVar16 = *pbVar13 == *pbVar12" identifier = (binary_expression "*pbVar13 == *pbVar12" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }" if (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" ( (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }" { (if_statement "if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }" if (parenthesized_expression "(local_c4 == 0)" ( (binary_expression "local_c4 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }" { (expression_statement "pcVar8 = "%ld: unexpected .ef\n";" (assignment_expression "pcVar8 = "%ld: unexpected .ef\n"" identifier = (string_literal ""%ld: unexpected .ef\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00027ebd;" goto statement_identifier ;) })) (expression_statement "uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);" (assignment_expression "uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" identifier = (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }" if (parenthesized_expression "(uVar15 < local_bc)" ( (binary_expression "uVar15 < local_bc" identifier < identifier) )) (compound_statement "{\n          uVar15 = local_bc;\n        }" { (expression_statement "uVar15 = local_bc;" (assignment_expression "uVar15 = local_bc" identifier = identifier) ;) })) (expression_statement "iVar5 = FUN_0001e6d0(param_4,uVar15);" (assignment_expression "iVar5 = FUN_0001e6d0(param_4,uVar15)" identifier = (call_expression "FUN_0001e6d0(param_4,uVar15)" identifier (argument_list "(param_4,uVar15)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (if_statement "if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }" if (parenthesized_expression "(local_c0 == (byte *)0x0)" ( (binary_expression "local_c0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }" { (expression_statement "pcVar8 = "%ld: .bf without preceding function";" (assignment_expression "pcVar8 = "%ld: .bf without preceding function"" identifier = (string_literal ""%ld: .bf without preceding function"" " string_content ")) ;) (labeled_statement "LAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002b6d0(uVar9,local_94);" (call_expression "FUN_0002b6d0(uVar9,local_94)" identifier (argument_list "(uVar9,local_94)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);" (assignment_expression "uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f)" identifier = (binary_expression "(int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f)" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f)" ( (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f" (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x9c) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )))) ;) (expression_statement "iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);" (assignment_expression "iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4)" identifier = (call_expression "FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4)" identifier (argument_list "(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4)" ( identifier , (binary_expression "(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15" (binary_expression "(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)" (parenthesized_expression "(local_b8 ^ uVar15)" ( (binary_expression "local_b8 ^ uVar15" identifier ^ identifier) )) & (pointer_expression "*(uint *)(*(int *)(param_1 + 0x9c) + 0x20)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x9c) + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x9c) + 0x20" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) + number_literal) ))))) ^ identifier) , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));" (assignment_expression "iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier = (call_expression "FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier (argument_list "(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" ( identifier , identifier , identifier , (binary_expression "bVar1 == 2 || bVar1 == 0x7f" (binary_expression "bVar1 == 2" identifier == number_literal) || (binary_expression "bVar1 == 0x7f" identifier == number_literal)) , (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (if_statement "if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }" if (parenthesized_expression "(local_67 != 0)" ( (binary_expression "local_67 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar10 = (local_8c & 0xffff) - 1;\n      }" { (expression_statement "iVar10 = (local_8c & 0xffff) - 1;" (assignment_expression "iVar10 = (local_8c & 0xffff) - 1" identifier = (binary_expression "(local_8c & 0xffff) - 1" (parenthesized_expression "(local_8c & 0xffff)" ( (binary_expression "local_8c & 0xffff" identifier & number_literal) )) - number_literal)) ;) })) (expression_statement "iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);" (assignment_expression "iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piVar11 = (int *)(local_b0 + 8);" (assignment_expression "piVar11 = (int *)(local_b0 + 8)" identifier = (cast_expression "(int *)(local_b0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 8)" ( (binary_expression "local_b0 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar6 = *(int *)(local_b0 + 8);" (assignment_expression "iVar6 = *(int *)(local_b0 + 8)" identifier = (pointer_expression "*(int *)(local_b0 + 8)" * (cast_expression "(int *)(local_b0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 8)" ( (binary_expression "local_b0 + 8" identifier + number_literal) ))))) ;) (while_statement "while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }" while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }" { (expression_statement "iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);" (assignment_expression "iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5)" identifier = (call_expression "FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5)" identifier (argument_list "(param_4,iVar6 + iVar10,piVar11[1] + iVar5)" ( identifier , (binary_expression "iVar6 + iVar10" identifier + identifier) , (binary_expression "piVar11[1] + iVar5" (subscript_expression "piVar11[1]" identifier [ number_literal ]) + identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar11 = piVar11 + 2;" (assignment_expression "piVar11 = piVar11 + 2" identifier = (binary_expression "piVar11 + 2" identifier + number_literal)) ;) (expression_statement "iVar6 = *piVar11;" (assignment_expression "iVar6 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) })) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_c4 = 1;" (assignment_expression "local_c4 = 1" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (byte *)0x0;" (assignment_expression "local_c0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (byte *)0x0;" (assignment_expression "local_c0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c4 = 1;" (assignment_expression "local_c4 = 1" identifier = number_literal) ;) (expression_statement "local_94 = iVar4;" (assignment_expression "local_94 = iVar4" identifier = identifier) ;) (if_statement "if (param_3 <= local_98) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 <= local_98)" ( (binary_expression "param_3 <= local_98" identifier <= identifier) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Unknown calling convention */\n\nbfd_boolean parse_coff(bfd *abfd,asymbol **syms,long symcount,void *dhandle)\n\n{\n  undefined1 uVar1;\n  coff_types *types_00;\n  debug_indirect_type *pdVar2;\n  byte bVar3;\n  byte bVar4;\n  debug_type *ppdVar5;\n  int iVar6;\n  debug_type pdVar7;\n  bfd_boolean bVar8;\n  int iVar9;\n  undefined4 uVar10;\n  char *pcVar11;\n  alent *paVar12;\n  debug_type pdVar13;\n  uint uVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  asymbol *sym;\n  asymbol *paVar20;\n  internal_auxent *local_d4;\n  asymbol *local_d0;\n  debug_type local_c4;\n  debug_type local_c0;\n  uint local_bc;\n  uint local_b8;\n  alent *local_b0;\n  coff_symbols symbols;\n  internal_auxent auxent;\n  internal_syment syment;\n  coff_types types;\n  undefined4 local_1c [2];\n  uint uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  symbols.symno = 0;\n  symbols.coff_symno = 0;\n  symbols.syms = syms;\n  types.slots = (coff_slots *)0x0;\n  symbols.symcount = symcount;\n  ppdVar5 = types.basic;\n  do {\n    *ppdVar5 = (debug_type)0x0;\n    ppdVar5 = ppdVar5 + 1;\n  } while ((debug_type *)local_1c != ppdVar5);\n  if (symcount < 1) {\n    return 1;\n  }\n  local_c4 = (debug_type)0x0;\n  local_b0 = (alent *)0x0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar3 = 0;\n  local_c0 = (debug_type)0x0;\n  local_d0 = (asymbol *)0xffffffff;\nLAB_00027971:\n  do {\n    types_00 = (coff_types *)syms[symbols.symno];\n    iVar6 = bfd_coff_get_syment(abfd,types_00,&syment);\n    if (iVar6 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,uVar10);\n      return 0;\n    }\n    pdVar7 = types_00->basic[0];\n    local_d4 = (internal_auxent *)0x0;\n    symbols.symno = symbols.symno + 1;\n    iVar6 = symbols.coff_symno + 1 + (uint)syment.n_numaux;\n    sym = (asymbol *)symbols.coff_symno;\n    if ((syment.n_numaux != '\0') &&\n       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    symbols.coff_symno = iVar6;\n    bVar4 = syment.n_sclass;\n    if (sym == local_d0) {\n      if (syment.n_sclass != 'g') {\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = (asymbol *)syment.n_value;\n      iVar6 = debug_set_filename(dhandle,(char *)pdVar7);\njoined_r0x00027bec:\n      if (iVar6 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      if (symcount <= symbols.symno) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar4 == 100;\n    bVar16 = bVar4 < 100;\n    syment.n_sclass = bVar4;\n    if (bVar18) {\n      iVar6 = 4;\n      pdVar13 = pdVar7;\n      pbVar15 = &DAT_00033d5b;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }\n      else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar4 < 0x65) {\n      if (bVar4 != 5) {\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar4) {\n      if (bVar4 == 0x7f) goto LAB_000278e8;\n      if (bVar4 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar4) goto LAB_00027960;\n    bVar16 = bVar4 < 0x65;\n    bVar18 = bVar4 == 0x65;\n    if (!bVar18) {\n      if (bVar4 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar6 = 4;\n    pdVar13 = pdVar7;\n    pbVar15 = &DAT_00033d3e;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      uVar1 = (undefined1)pdVar13->kind;\n      bVar16 = (byte)uVar1 < *pbVar15;\n      bVar18 = uVar1 == *pbVar15;\n      pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n      pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar6 = 4;\n      pbVar15 = &DAT_00033d42;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (debug_type)0x0) {\n      pcVar11 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,sym);\n      return 0;\n    }\n    uVar14 = (int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f);\n    pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle);\n    if (pdVar7 == (debug_type)0x0) {\n      return 0;\n    }\n    uVar14 = 1;\n    if (bVar3 != 2) {\n      uVar14 = (uint)(bVar3 == 0x7f);\n    }\n    bVar8 = debug_record_function\n                      (dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind);\n    if (bVar8 == 0) {\n      return 0;\n    }\n    if (local_b0 != (alent *)0x0) {\n      iVar6 = 0;\n      if (syment.n_numaux != '\0') {\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }\n      pdVar2 = types_00->basic[3][1].u.kindirect;\n      paVar12 = local_b0 + 1;\n      uVar14 = local_b0[1].line_number;\n      while (uVar14 != 0) {\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }\n      local_b8 = 0;\n      local_c4 = (debug_type)0x1;\n      local_b0 = (alent *)0x0;\n      local_c0 = (debug_type)0x0;\n      bVar3 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar3 = 0;\n    local_c0 = (debug_type)0x0;\n    local_c4 = (debug_type)0x1;\n    if (symcount <= symbols.symno) {\n      return 1;\n    }\n  } while( true );\n}\n\n" comment comment comment (function_definition "bfd_boolean parse_coff(bfd *abfd,asymbol **syms,long symcount,void *dhandle)\n\n{\n  undefined1 uVar1;\n  coff_types *types_00;\n  debug_indirect_type *pdVar2;\n  byte bVar3;\n  byte bVar4;\n  debug_type *ppdVar5;\n  int iVar6;\n  debug_type pdVar7;\n  bfd_boolean bVar8;\n  int iVar9;\n  undefined4 uVar10;\n  char *pcVar11;\n  alent *paVar12;\n  debug_type pdVar13;\n  uint uVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  asymbol *sym;\n  asymbol *paVar20;\n  internal_auxent *local_d4;\n  asymbol *local_d0;\n  debug_type local_c4;\n  debug_type local_c0;\n  uint local_bc;\n  uint local_b8;\n  alent *local_b0;\n  coff_symbols symbols;\n  internal_auxent auxent;\n  internal_syment syment;\n  coff_types types;\n  undefined4 local_1c [2];\n  uint uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  symbols.symno = 0;\n  symbols.coff_symno = 0;\n  symbols.syms = syms;\n  types.slots = (coff_slots *)0x0;\n  symbols.symcount = symcount;\n  ppdVar5 = types.basic;\n  do {\n    *ppdVar5 = (debug_type)0x0;\n    ppdVar5 = ppdVar5 + 1;\n  } while ((debug_type *)local_1c != ppdVar5);\n  if (symcount < 1) {\n    return 1;\n  }\n  local_c4 = (debug_type)0x0;\n  local_b0 = (alent *)0x0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar3 = 0;\n  local_c0 = (debug_type)0x0;\n  local_d0 = (asymbol *)0xffffffff;\nLAB_00027971:\n  do {\n    types_00 = (coff_types *)syms[symbols.symno];\n    iVar6 = bfd_coff_get_syment(abfd,types_00,&syment);\n    if (iVar6 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,uVar10);\n      return 0;\n    }\n    pdVar7 = types_00->basic[0];\n    local_d4 = (internal_auxent *)0x0;\n    symbols.symno = symbols.symno + 1;\n    iVar6 = symbols.coff_symno + 1 + (uint)syment.n_numaux;\n    sym = (asymbol *)symbols.coff_symno;\n    if ((syment.n_numaux != '\0') &&\n       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    symbols.coff_symno = iVar6;\n    bVar4 = syment.n_sclass;\n    if (sym == local_d0) {\n      if (syment.n_sclass != 'g') {\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = (asymbol *)syment.n_value;\n      iVar6 = debug_set_filename(dhandle,(char *)pdVar7);\njoined_r0x00027bec:\n      if (iVar6 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      if (symcount <= symbols.symno) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar4 == 100;\n    bVar16 = bVar4 < 100;\n    syment.n_sclass = bVar4;\n    if (bVar18) {\n      iVar6 = 4;\n      pdVar13 = pdVar7;\n      pbVar15 = &DAT_00033d5b;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }\n      else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar4 < 0x65) {\n      if (bVar4 != 5) {\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar4) {\n      if (bVar4 == 0x7f) goto LAB_000278e8;\n      if (bVar4 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar4) goto LAB_00027960;\n    bVar16 = bVar4 < 0x65;\n    bVar18 = bVar4 == 0x65;\n    if (!bVar18) {\n      if (bVar4 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar6 = 4;\n    pdVar13 = pdVar7;\n    pbVar15 = &DAT_00033d3e;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      uVar1 = (undefined1)pdVar13->kind;\n      bVar16 = (byte)uVar1 < *pbVar15;\n      bVar18 = uVar1 == *pbVar15;\n      pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n      pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar6 = 4;\n      pbVar15 = &DAT_00033d42;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (debug_type)0x0) {\n      pcVar11 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,sym);\n      return 0;\n    }\n    uVar14 = (int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f);\n    pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle);\n    if (pdVar7 == (debug_type)0x0) {\n      return 0;\n    }\n    uVar14 = 1;\n    if (bVar3 != 2) {\n      uVar14 = (uint)(bVar3 == 0x7f);\n    }\n    bVar8 = debug_record_function\n                      (dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind);\n    if (bVar8 == 0) {\n      return 0;\n    }\n    if (local_b0 != (alent *)0x0) {\n      iVar6 = 0;\n      if (syment.n_numaux != '\0') {\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }\n      pdVar2 = types_00->basic[3][1].u.kindirect;\n      paVar12 = local_b0 + 1;\n      uVar14 = local_b0[1].line_number;\n      while (uVar14 != 0) {\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }\n      local_b8 = 0;\n      local_c4 = (debug_type)0x1;\n      local_b0 = (alent *)0x0;\n      local_c0 = (debug_type)0x0;\n      bVar3 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar3 = 0;\n    local_c0 = (debug_type)0x0;\n    local_c4 = (debug_type)0x1;\n    if (symcount <= symbols.symno) {\n      return 1;\n    }\n  } while( true );\n}" type_identifier (function_declarator "parse_coff(bfd *abfd,asymbol **syms,long symcount,void *dhandle)" identifier (parameter_list "(bfd *abfd,asymbol **syms,long symcount,void *dhandle)" ( (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) , (parameter_declaration "asymbol **syms" type_identifier (pointer_declarator "**syms" * (pointer_declarator "*syms" * identifier))) , (parameter_declaration "long symcount" (sized_type_specifier "long" long) identifier) , (parameter_declaration "void *dhandle" primitive_type (pointer_declarator "*dhandle" * identifier)) ))) (compound_statement "{\n  undefined1 uVar1;\n  coff_types *types_00;\n  debug_indirect_type *pdVar2;\n  byte bVar3;\n  byte bVar4;\n  debug_type *ppdVar5;\n  int iVar6;\n  debug_type pdVar7;\n  bfd_boolean bVar8;\n  int iVar9;\n  undefined4 uVar10;\n  char *pcVar11;\n  alent *paVar12;\n  debug_type pdVar13;\n  uint uVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  asymbol *sym;\n  asymbol *paVar20;\n  internal_auxent *local_d4;\n  asymbol *local_d0;\n  debug_type local_c4;\n  debug_type local_c0;\n  uint local_bc;\n  uint local_b8;\n  alent *local_b0;\n  coff_symbols symbols;\n  internal_auxent auxent;\n  internal_syment syment;\n  coff_types types;\n  undefined4 local_1c [2];\n  uint uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  symbols.symno = 0;\n  symbols.coff_symno = 0;\n  symbols.syms = syms;\n  types.slots = (coff_slots *)0x0;\n  symbols.symcount = symcount;\n  ppdVar5 = types.basic;\n  do {\n    *ppdVar5 = (debug_type)0x0;\n    ppdVar5 = ppdVar5 + 1;\n  } while ((debug_type *)local_1c != ppdVar5);\n  if (symcount < 1) {\n    return 1;\n  }\n  local_c4 = (debug_type)0x0;\n  local_b0 = (alent *)0x0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar3 = 0;\n  local_c0 = (debug_type)0x0;\n  local_d0 = (asymbol *)0xffffffff;\nLAB_00027971:\n  do {\n    types_00 = (coff_types *)syms[symbols.symno];\n    iVar6 = bfd_coff_get_syment(abfd,types_00,&syment);\n    if (iVar6 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,uVar10);\n      return 0;\n    }\n    pdVar7 = types_00->basic[0];\n    local_d4 = (internal_auxent *)0x0;\n    symbols.symno = symbols.symno + 1;\n    iVar6 = symbols.coff_symno + 1 + (uint)syment.n_numaux;\n    sym = (asymbol *)symbols.coff_symno;\n    if ((syment.n_numaux != '\0') &&\n       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    symbols.coff_symno = iVar6;\n    bVar4 = syment.n_sclass;\n    if (sym == local_d0) {\n      if (syment.n_sclass != 'g') {\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = (asymbol *)syment.n_value;\n      iVar6 = debug_set_filename(dhandle,(char *)pdVar7);\njoined_r0x00027bec:\n      if (iVar6 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      if (symcount <= symbols.symno) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar4 == 100;\n    bVar16 = bVar4 < 100;\n    syment.n_sclass = bVar4;\n    if (bVar18) {\n      iVar6 = 4;\n      pdVar13 = pdVar7;\n      pbVar15 = &DAT_00033d5b;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }\n      else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar4 < 0x65) {\n      if (bVar4 != 5) {\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar4) {\n      if (bVar4 == 0x7f) goto LAB_000278e8;\n      if (bVar4 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar4) goto LAB_00027960;\n    bVar16 = bVar4 < 0x65;\n    bVar18 = bVar4 == 0x65;\n    if (!bVar18) {\n      if (bVar4 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar6 = 4;\n    pdVar13 = pdVar7;\n    pbVar15 = &DAT_00033d3e;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      uVar1 = (undefined1)pdVar13->kind;\n      bVar16 = (byte)uVar1 < *pbVar15;\n      bVar18 = uVar1 == *pbVar15;\n      pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n      pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar6 = 4;\n      pbVar15 = &DAT_00033d42;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (debug_type)0x0) {\n      pcVar11 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,sym);\n      return 0;\n    }\n    uVar14 = (int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f);\n    pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle);\n    if (pdVar7 == (debug_type)0x0) {\n      return 0;\n    }\n    uVar14 = 1;\n    if (bVar3 != 2) {\n      uVar14 = (uint)(bVar3 == 0x7f);\n    }\n    bVar8 = debug_record_function\n                      (dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind);\n    if (bVar8 == 0) {\n      return 0;\n    }\n    if (local_b0 != (alent *)0x0) {\n      iVar6 = 0;\n      if (syment.n_numaux != '\0') {\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }\n      pdVar2 = types_00->basic[3][1].u.kindirect;\n      paVar12 = local_b0 + 1;\n      uVar14 = local_b0[1].line_number;\n      while (uVar14 != 0) {\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }\n      local_b8 = 0;\n      local_c4 = (debug_type)0x1;\n      local_b0 = (alent *)0x0;\n      local_c0 = (debug_type)0x0;\n      bVar3 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar3 = 0;\n    local_c0 = (debug_type)0x0;\n    local_c4 = (debug_type)0x1;\n    if (symcount <= symbols.symno) {\n      return 1;\n    }\n  } while( true );\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "coff_types *types_00;" type_identifier (pointer_declarator "*types_00" * identifier) ;) (declaration "debug_indirect_type *pdVar2;" type_identifier (pointer_declarator "*pdVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "debug_type *ppdVar5;" type_identifier (pointer_declarator "*ppdVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "debug_type pdVar7;" type_identifier identifier ;) (declaration "bfd_boolean bVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "alent *paVar12;" type_identifier (pointer_declarator "*paVar12" * identifier) ;) (declaration "debug_type pdVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "asymbol *sym;" type_identifier (pointer_declarator "*sym" * identifier) ;) (declaration "asymbol *paVar20;" type_identifier (pointer_declarator "*paVar20" * identifier) ;) (declaration "internal_auxent *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "asymbol *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "debug_type local_c4;" type_identifier identifier ;) (declaration "debug_type local_c0;" type_identifier identifier ;) (declaration "uint local_bc;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "alent *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "coff_symbols symbols;" type_identifier identifier ;) (declaration "internal_auxent auxent;" type_identifier identifier ;) (declaration "internal_syment syment;" type_identifier identifier ;) (declaration "coff_types types;" type_identifier identifier ;) (declaration "undefined4 local_1c [2];" type_identifier (array_declarator "local_1c [2]" identifier [ number_literal ]) ;) (declaration "uint uStack_14;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x27809;" (assignment_expression "uStack_14 = 0x27809" identifier = number_literal) ;) (expression_statement "symbols.symno = 0;" (assignment_expression "symbols.symno = 0" (field_expression "symbols.symno" identifier . field_identifier) = number_literal) ;) (expression_statement "symbols.coff_symno = 0;" (assignment_expression "symbols.coff_symno = 0" (field_expression "symbols.coff_symno" identifier . field_identifier) = number_literal) ;) (expression_statement "symbols.syms = syms;" (assignment_expression "symbols.syms = syms" (field_expression "symbols.syms" identifier . field_identifier) = identifier) ;) (expression_statement "types.slots = (coff_slots *)0x0;" (assignment_expression "types.slots = (coff_slots *)0x0" (field_expression "types.slots" identifier . field_identifier) = (cast_expression "(coff_slots *)0x0" ( (type_descriptor "coff_slots *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "symbols.symcount = symcount;" (assignment_expression "symbols.symcount = symcount" (field_expression "symbols.symcount" identifier . field_identifier) = identifier) ;) (expression_statement "ppdVar5 = types.basic;" (assignment_expression "ppdVar5 = types.basic" identifier = (field_expression "types.basic" identifier . field_identifier)) ;) (do_statement "do {\n    *ppdVar5 = (debug_type)0x0;\n    ppdVar5 = ppdVar5 + 1;\n  } while ((debug_type *)local_1c != ppdVar5);" do (compound_statement "{\n    *ppdVar5 = (debug_type)0x0;\n    ppdVar5 = ppdVar5 + 1;\n  }" { (expression_statement "*ppdVar5 = (debug_type)0x0;" (assignment_expression "*ppdVar5 = (debug_type)0x0" (pointer_expression "*ppdVar5" * identifier) = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "ppdVar5 = ppdVar5 + 1;" (assignment_expression "ppdVar5 = ppdVar5 + 1" identifier = (binary_expression "ppdVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((debug_type *)local_1c != ppdVar5)" ( (binary_expression "(debug_type *)local_1c != ppdVar5" (cast_expression "(debug_type *)local_1c" ( (type_descriptor "debug_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) (if_statement "if (symcount < 1) {\n    return 1;\n  }" if (parenthesized_expression "(symcount < 1)" ( (binary_expression "symcount < 1" identifier < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_c4 = (debug_type)0x0;" (assignment_expression "local_c4 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_b0 = (alent *)0x0;" (assignment_expression "local_b0 = (alent *)0x0" identifier = (cast_expression "(alent *)0x0" ( (type_descriptor "alent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (debug_type)0x0;" (assignment_expression "local_c0 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_d0 = (asymbol *)0xffffffff;" (assignment_expression "local_d0 = (asymbol *)0xffffffff" identifier = (cast_expression "(asymbol *)0xffffffff" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00027971:\n  do {\n    types_00 = (coff_types *)syms[symbols.symno];\n    iVar6 = bfd_coff_get_syment(abfd,types_00,&syment);\n    if (iVar6 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,uVar10);\n      return 0;\n    }\n    pdVar7 = types_00->basic[0];\n    local_d4 = (internal_auxent *)0x0;\n    symbols.symno = symbols.symno + 1;\n    iVar6 = symbols.coff_symno + 1 + (uint)syment.n_numaux;\n    sym = (asymbol *)symbols.coff_symno;\n    if ((syment.n_numaux != '\0') &&\n       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    symbols.coff_symno = iVar6;\n    bVar4 = syment.n_sclass;\n    if (sym == local_d0) {\n      if (syment.n_sclass != 'g') {\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = (asymbol *)syment.n_value;\n      iVar6 = debug_set_filename(dhandle,(char *)pdVar7);\njoined_r0x00027bec:\n      if (iVar6 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      if (symcount <= symbols.symno) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar4 == 100;\n    bVar16 = bVar4 < 100;\n    syment.n_sclass = bVar4;\n    if (bVar18) {\n      iVar6 = 4;\n      pdVar13 = pdVar7;\n      pbVar15 = &DAT_00033d5b;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }\n      else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar4 < 0x65) {\n      if (bVar4 != 5) {\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar4) {\n      if (bVar4 == 0x7f) goto LAB_000278e8;\n      if (bVar4 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar4) goto LAB_00027960;\n    bVar16 = bVar4 < 0x65;\n    bVar18 = bVar4 == 0x65;\n    if (!bVar18) {\n      if (bVar4 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar6 = 4;\n    pdVar13 = pdVar7;\n    pbVar15 = &DAT_00033d3e;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      uVar1 = (undefined1)pdVar13->kind;\n      bVar16 = (byte)uVar1 < *pbVar15;\n      bVar18 = uVar1 == *pbVar15;\n      pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n      pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar6 = 4;\n      pbVar15 = &DAT_00033d42;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (debug_type)0x0) {\n      pcVar11 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,sym);\n      return 0;\n    }\n    uVar14 = (int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f);\n    pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle);\n    if (pdVar7 == (debug_type)0x0) {\n      return 0;\n    }\n    uVar14 = 1;\n    if (bVar3 != 2) {\n      uVar14 = (uint)(bVar3 == 0x7f);\n    }\n    bVar8 = debug_record_function\n                      (dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind);\n    if (bVar8 == 0) {\n      return 0;\n    }\n    if (local_b0 != (alent *)0x0) {\n      iVar6 = 0;\n      if (syment.n_numaux != '\0') {\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }\n      pdVar2 = types_00->basic[3][1].u.kindirect;\n      paVar12 = local_b0 + 1;\n      uVar14 = local_b0[1].line_number;\n      while (uVar14 != 0) {\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }\n      local_b8 = 0;\n      local_c4 = (debug_type)0x1;\n      local_b0 = (alent *)0x0;\n      local_c0 = (debug_type)0x0;\n      bVar3 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar3 = 0;\n    local_c0 = (debug_type)0x0;\n    local_c4 = (debug_type)0x1;\n    if (symcount <= symbols.symno) {\n      return 1;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    types_00 = (coff_types *)syms[symbols.symno];\n    iVar6 = bfd_coff_get_syment(abfd,types_00,&syment);\n    if (iVar6 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,uVar10);\n      return 0;\n    }\n    pdVar7 = types_00->basic[0];\n    local_d4 = (internal_auxent *)0x0;\n    symbols.symno = symbols.symno + 1;\n    iVar6 = symbols.coff_symno + 1 + (uint)syment.n_numaux;\n    sym = (asymbol *)symbols.coff_symno;\n    if ((syment.n_numaux != '\0') &&\n       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    symbols.coff_symno = iVar6;\n    bVar4 = syment.n_sclass;\n    if (sym == local_d0) {\n      if (syment.n_sclass != 'g') {\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = (asymbol *)syment.n_value;\n      iVar6 = debug_set_filename(dhandle,(char *)pdVar7);\njoined_r0x00027bec:\n      if (iVar6 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      if (symcount <= symbols.symno) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar4 == 100;\n    bVar16 = bVar4 < 100;\n    syment.n_sclass = bVar4;\n    if (bVar18) {\n      iVar6 = 4;\n      pdVar13 = pdVar7;\n      pbVar15 = &DAT_00033d5b;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }\n      else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar4 < 0x65) {\n      if (bVar4 != 5) {\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar4) {\n      if (bVar4 == 0x7f) goto LAB_000278e8;\n      if (bVar4 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar4) goto LAB_00027960;\n    bVar16 = bVar4 < 0x65;\n    bVar18 = bVar4 == 0x65;\n    if (!bVar18) {\n      if (bVar4 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar6 = 4;\n    pdVar13 = pdVar7;\n    pbVar15 = &DAT_00033d3e;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      uVar1 = (undefined1)pdVar13->kind;\n      bVar16 = (byte)uVar1 < *pbVar15;\n      bVar18 = uVar1 == *pbVar15;\n      pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n      pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar6 = 4;\n      pbVar15 = &DAT_00033d42;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (debug_type)0x0) {\n      pcVar11 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,sym);\n      return 0;\n    }\n    uVar14 = (int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f);\n    pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle);\n    if (pdVar7 == (debug_type)0x0) {\n      return 0;\n    }\n    uVar14 = 1;\n    if (bVar3 != 2) {\n      uVar14 = (uint)(bVar3 == 0x7f);\n    }\n    bVar8 = debug_record_function\n                      (dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind);\n    if (bVar8 == 0) {\n      return 0;\n    }\n    if (local_b0 != (alent *)0x0) {\n      iVar6 = 0;\n      if (syment.n_numaux != '\0') {\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }\n      pdVar2 = types_00->basic[3][1].u.kindirect;\n      paVar12 = local_b0 + 1;\n      uVar14 = local_b0[1].line_number;\n      while (uVar14 != 0) {\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }\n      local_b8 = 0;\n      local_c4 = (debug_type)0x1;\n      local_b0 = (alent *)0x0;\n      local_c0 = (debug_type)0x0;\n      bVar3 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar3 = 0;\n    local_c0 = (debug_type)0x0;\n    local_c4 = (debug_type)0x1;\n    if (symcount <= symbols.symno) {\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    types_00 = (coff_types *)syms[symbols.symno];\n    iVar6 = bfd_coff_get_syment(abfd,types_00,&syment);\n    if (iVar6 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,uVar10);\n      return 0;\n    }\n    pdVar7 = types_00->basic[0];\n    local_d4 = (internal_auxent *)0x0;\n    symbols.symno = symbols.symno + 1;\n    iVar6 = symbols.coff_symno + 1 + (uint)syment.n_numaux;\n    sym = (asymbol *)symbols.coff_symno;\n    if ((syment.n_numaux != '\0') &&\n       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    symbols.coff_symno = iVar6;\n    bVar4 = syment.n_sclass;\n    if (sym == local_d0) {\n      if (syment.n_sclass != 'g') {\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = (asymbol *)syment.n_value;\n      iVar6 = debug_set_filename(dhandle,(char *)pdVar7);\njoined_r0x00027bec:\n      if (iVar6 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      if (symcount <= symbols.symno) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar4 == 100;\n    bVar16 = bVar4 < 100;\n    syment.n_sclass = bVar4;\n    if (bVar18) {\n      iVar6 = 4;\n      pdVar13 = pdVar7;\n      pbVar15 = &DAT_00033d5b;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }\n      else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar4 < 0x65) {\n      if (bVar4 != 5) {\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar4) {\n      if (bVar4 == 0x7f) goto LAB_000278e8;\n      if (bVar4 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar4) goto LAB_00027960;\n    bVar16 = bVar4 < 0x65;\n    bVar18 = bVar4 == 0x65;\n    if (!bVar18) {\n      if (bVar4 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar6 = 4;\n    pdVar13 = pdVar7;\n    pbVar15 = &DAT_00033d3e;\n    do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      uVar1 = (undefined1)pdVar13->kind;\n      bVar16 = (byte)uVar1 < *pbVar15;\n      bVar18 = uVar1 == *pbVar15;\n      pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n      pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar6 = 4;\n      pbVar15 = &DAT_00033d42;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (debug_type)0x0) {\n      pcVar11 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,sym);\n      return 0;\n    }\n    uVar14 = (int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f);\n    pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle);\n    if (pdVar7 == (debug_type)0x0) {\n      return 0;\n    }\n    uVar14 = 1;\n    if (bVar3 != 2) {\n      uVar14 = (uint)(bVar3 == 0x7f);\n    }\n    bVar8 = debug_record_function\n                      (dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind);\n    if (bVar8 == 0) {\n      return 0;\n    }\n    if (local_b0 != (alent *)0x0) {\n      iVar6 = 0;\n      if (syment.n_numaux != '\0') {\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }\n      pdVar2 = types_00->basic[3][1].u.kindirect;\n      paVar12 = local_b0 + 1;\n      uVar14 = local_b0[1].line_number;\n      while (uVar14 != 0) {\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }\n      local_b8 = 0;\n      local_c4 = (debug_type)0x1;\n      local_b0 = (alent *)0x0;\n      local_c0 = (debug_type)0x0;\n      bVar3 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar3 = 0;\n    local_c0 = (debug_type)0x0;\n    local_c4 = (debug_type)0x1;\n    if (symcount <= symbols.symno) {\n      return 1;\n    }\n  }" { (expression_statement "types_00 = (coff_types *)syms[symbols.symno];" (assignment_expression "types_00 = (coff_types *)syms[symbols.symno]" identifier = (cast_expression "(coff_types *)syms[symbols.symno]" ( (type_descriptor "coff_types *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "syms[symbols.symno]" identifier [ (field_expression "symbols.symno" identifier . field_identifier) ]))) ;) (expression_statement "iVar6 = bfd_coff_get_syment(abfd,types_00,&syment);" (assignment_expression "iVar6 = bfd_coff_get_syment(abfd,types_00,&syment)" identifier = (call_expression "bfd_coff_get_syment(abfd,types_00,&syment)" identifier (argument_list "(abfd,types_00,&syment)" ( identifier , identifier , (pointer_expression "&syment" & identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,uVar10);\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,uVar10);\n      return 0;\n    }" { (expression_statement "uVar10 = bfd_get_error();" (assignment_expression "uVar10 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = bfd_errmsg(uVar10);" (assignment_expression "uVar10 = bfd_errmsg(uVar10)" identifier = (call_expression "bfd_errmsg(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (expression_statement "pcVar11 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar11 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_00027e3b:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);" statement_identifier : (expression_statement "pcVar11 = (char *)dcgettext(0,pcVar11,5);" (assignment_expression "pcVar11 = (char *)dcgettext(0,pcVar11,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar11,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar11,5)" identifier (argument_list "(0,pcVar11,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "non_fatal(pcVar11,uVar10);" (call_expression "non_fatal(pcVar11,uVar10)" identifier (argument_list "(pcVar11,uVar10)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pdVar7 = types_00->basic[0];" (assignment_expression "pdVar7 = types_00->basic[0]" identifier = (subscript_expression "types_00->basic[0]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "local_d4 = (internal_auxent *)0x0;" (assignment_expression "local_d4 = (internal_auxent *)0x0" identifier = (cast_expression "(internal_auxent *)0x0" ( (type_descriptor "internal_auxent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "symbols.symno = symbols.symno + 1;" (assignment_expression "symbols.symno = symbols.symno + 1" (field_expression "symbols.symno" identifier . field_identifier) = (binary_expression "symbols.symno + 1" (field_expression "symbols.symno" identifier . field_identifier) + number_literal)) ;) (expression_statement "iVar6 = symbols.coff_symno + 1 + (uint)syment.n_numaux;" (assignment_expression "iVar6 = symbols.coff_symno + 1 + (uint)syment.n_numaux" identifier = (binary_expression "symbols.coff_symno + 1 + (uint)syment.n_numaux" (binary_expression "symbols.coff_symno + 1" (field_expression "symbols.coff_symno" identifier . field_identifier) + number_literal) + (cast_expression "(uint)syment.n_numaux" ( (type_descriptor "uint" type_identifier) ) (field_expression "syment.n_numaux" identifier . field_identifier)))) ;) (expression_statement "sym = (asymbol *)symbols.coff_symno;" (assignment_expression "sym = (asymbol *)symbols.coff_symno" identifier = (cast_expression "(asymbol *)symbols.coff_symno" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "symbols.coff_symno" identifier . field_identifier))) ;) (if_statement "if ((syment.n_numaux != '\0') &&\n       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)) {\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }" if (parenthesized_expression "((syment.n_numaux != '\0') &&\n       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0))" ( (binary_expression "(syment.n_numaux != '\0') &&\n       (symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)" (parenthesized_expression "(syment.n_numaux != '\0')" ( (binary_expression "syment.n_numaux != '\0'" (field_expression "syment.n_numaux" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0)" ( (comma_expression "symbols.coff_symno = iVar6, iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0" (assignment_expression "symbols.coff_symno = iVar6" (field_expression "symbols.coff_symno" identifier . field_identifier) = identifier) , (comma_expression "iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent),\n       local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0" (assignment_expression "iVar9 = bfd_coff_get_auxent(abfd,types_00,0,&auxent)" identifier = (call_expression "bfd_coff_get_auxent(abfd,types_00,0,&auxent)" identifier (argument_list "(abfd,types_00,0,&auxent)" ( identifier , identifier , number_literal , (pointer_expression "&auxent" & identifier) )))) , (comma_expression "local_d4 = &auxent, iVar6 = symbols.coff_symno, iVar9 == 0" (assignment_expression "local_d4 = &auxent" identifier = (pointer_expression "&auxent" & identifier)) , (comma_expression "iVar6 = symbols.coff_symno, iVar9 == 0" (assignment_expression "iVar6 = symbols.coff_symno" identifier = (field_expression "symbols.coff_symno" identifier . field_identifier)) , (binary_expression "iVar9 == 0" identifier == number_literal))))) ))) )) (compound_statement "{\n      uVar10 = bfd_get_error();\n      uVar10 = bfd_errmsg(uVar10);\n      pcVar11 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }" { (expression_statement "uVar10 = bfd_get_error();" (assignment_expression "uVar10 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = bfd_errmsg(uVar10);" (assignment_expression "uVar10 = bfd_errmsg(uVar10)" identifier = (call_expression "bfd_errmsg(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) (expression_statement "pcVar11 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar11 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_00027e3b;" goto statement_identifier ;) })) (expression_statement "symbols.coff_symno = iVar6;" (assignment_expression "symbols.coff_symno = iVar6" (field_expression "symbols.coff_symno" identifier . field_identifier) = identifier) ;) (expression_statement "bVar4 = syment.n_sclass;" (assignment_expression "bVar4 = syment.n_sclass" identifier = (field_expression "syment.n_sclass" identifier . field_identifier)) ;) (if_statement "if (sym == local_d0) {\n      if (syment.n_sclass != 'g') {\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = (asymbol *)syment.n_value;\n      iVar6 = debug_set_filename(dhandle,(char *)pdVar7);\njoined_r0x00027bec:\n      if (iVar6 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      if (symcount <= symbols.symno) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }" if (parenthesized_expression "(sym == local_d0)" ( (binary_expression "sym == local_d0" identifier == identifier) )) (compound_statement "{\n      if (syment.n_sclass != 'g') {\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = (asymbol *)syment.n_value;\n      iVar6 = debug_set_filename(dhandle,(char *)pdVar7);\njoined_r0x00027bec:\n      if (iVar6 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      if (symcount <= symbols.symno) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }" { (if_statement "if (syment.n_sclass != 'g') {\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }" if (parenthesized_expression "(syment.n_sclass != 'g')" ( (binary_expression "syment.n_sclass != 'g'" (field_expression "syment.n_sclass" identifier . field_identifier) != (char_literal "'g'" ' character ')) )) (compound_statement "{\n        bVar8 = debug_set_filename(dhandle,"*globals*");\n        bVar4 = syment.n_sclass;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }" { (expression_statement "bVar8 = debug_set_filename(dhandle,"*globals*");" (assignment_expression "bVar8 = debug_set_filename(dhandle,"*globals*")" identifier = (call_expression "debug_set_filename(dhandle,"*globals*")" identifier (argument_list "(dhandle,"*globals*")" ( identifier , (string_literal ""*globals*"" " string_content ") )))) ;) (expression_statement "bVar4 = syment.n_sclass;" (assignment_expression "bVar4 = syment.n_sclass" identifier = (field_expression "syment.n_sclass" identifier . field_identifier)) ;) (if_statement "if (bVar8 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto joined_r0x00027c50;" goto statement_identifier ;) })) (labeled_statement "LAB_00027bcc:\n      local_d0 = (asymbol *)syment.n_value;" statement_identifier : (expression_statement "local_d0 = (asymbol *)syment.n_value;" (assignment_expression "local_d0 = (asymbol *)syment.n_value" identifier = (cast_expression "(asymbol *)syment.n_value" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "syment.n_value" identifier . field_identifier))) ;)) (expression_statement "iVar6 = debug_set_filename(dhandle,(char *)pdVar7);" (assignment_expression "iVar6 = debug_set_filename(dhandle,(char *)pdVar7)" identifier = (call_expression "debug_set_filename(dhandle,(char *)pdVar7)" identifier (argument_list "(dhandle,(char *)pdVar7)" ( identifier , (cast_expression "(char *)pdVar7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (labeled_statement "joined_r0x00027bec:\n      if (iVar6 == 0) {\n        return 0;\n      }" statement_identifier : (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) }))) (labeled_statement "LAB_00027960:\n      if (symcount <= symbols.symno) {\n        return 1;\n      }" statement_identifier : (if_statement "if (symcount <= symbols.symno) {\n        return 1;\n      }" if (parenthesized_expression "(symcount <= symbols.symno)" ( (binary_expression "symcount <= symbols.symno" identifier <= (field_expression "symbols.symno" identifier . field_identifier)) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) }))) (goto_statement "goto LAB_00027971;" goto statement_identifier ;) })) (labeled_statement "joined_r0x00027c50:\n    bVar18 = bVar4 == 100;" statement_identifier : (expression_statement "bVar18 = bVar4 == 100;" (assignment_expression "bVar18 = bVar4 == 100" identifier = (binary_expression "bVar4 == 100" identifier == number_literal)) ;)) (expression_statement "bVar16 = bVar4 < 100;" (assignment_expression "bVar16 = bVar4 < 100" identifier = (binary_expression "bVar4 < 100" identifier < number_literal)) ;) (expression_statement "syment.n_sclass = bVar4;" (assignment_expression "syment.n_sclass = bVar4" (field_expression "syment.n_sclass" identifier . field_identifier) = identifier) ;) (if_statement "if (bVar18) {\n      iVar6 = 4;\n      pdVar13 = pdVar7;\n      pbVar15 = &DAT_00033d5b;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }\n      else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }\n      goto joined_r0x00027bec;\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      iVar6 = 4;\n      pdVar13 = pdVar7;\n      pbVar15 = &DAT_00033d5b;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }\n      else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }\n      goto joined_r0x00027bec;\n    }" { (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (expression_statement "pdVar13 = pdVar7;" (assignment_expression "pdVar13 = pdVar7" identifier = identifier) ;) (expression_statement "pbVar15 = &DAT_00033d5b;" (assignment_expression "pbVar15 = &DAT_00033d5b" identifier = (pointer_expression "&DAT_00033d5b" & identifier)) ;) (do_statement "do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar13->kind;\n        bVar16 = (byte)uVar1 < *pbVar15;\n        bVar18 = uVar1 == *pbVar15;\n        pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar1 = (undefined1)pdVar13->kind;" (assignment_expression "uVar1 = (undefined1)pdVar13->kind" identifier = (cast_expression "(undefined1)pdVar13->kind" ( (type_descriptor "undefined1" type_identifier) ) (field_expression "pdVar13->kind" identifier -> field_identifier))) ;) (expression_statement "bVar16 = (byte)uVar1 < *pbVar15;" (assignment_expression "bVar16 = (byte)uVar1 < *pbVar15" identifier = (binary_expression "(byte)uVar1 < *pbVar15" (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar18 = uVar1 == *pbVar15;" (assignment_expression "bVar18 = uVar1 == *pbVar15" identifier = (binary_expression "uVar1 == *pbVar15" identifier == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);" (assignment_expression "pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1)" identifier = (call_expression "(debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1)" (parenthesized_expression "(debug_type)" ( identifier )) (argument_list "((int)pdVar13 + (uint)bVar19 * -2 + 1)" ( (binary_expression "(int)pdVar13 + (uint)bVar19 * -2 + 1" (binary_expression "(int)pdVar13 + (uint)bVar19 * -2" (cast_expression "(int)pdVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) {\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }\n      else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n        iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);\n      }" { (expression_statement "iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind);" (assignment_expression "iVar6 = debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind)" identifier = (call_expression "debug_start_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind)" identifier (argument_list "(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind)" ( identifier , (binary_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                          (int)&types_00->basic[1]->kind" (cast_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(types_00->basic[3][1].u.kindirect)->slot" & (field_expression "(types_00->basic[3][1].u.kindirect)->slot" (parenthesized_expression "(types_00->basic[3][1].u.kindirect)" ( (field_expression "types_00->basic[3][1].u.kindirect" (field_expression "types_00->basic[3][1].u" (subscript_expression "types_00->basic[3][1]" (subscript_expression "types_00->basic[3]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) [ number_literal ]) . field_identifier) . field_identifier) )) -> field_identifier))) + (cast_expression "(int)&types_00->basic[1]->kind" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&types_00->basic[1]->kind" & (field_expression "types_00->basic[1]->kind" (subscript_expression "types_00->basic[1]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) -> field_identifier)))) )))) ;) }) (else_clause "else {\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }" else (compound_statement "{\n        iVar6 = 4;\n        pbVar15 = &DAT_00033d5f;\n        do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);\n      }" { (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (expression_statement "pbVar15 = &DAT_00033d5f;" (assignment_expression "pbVar15 = &DAT_00033d5f" identifier = (pointer_expression "&DAT_00033d5f" & identifier)) ;) (do_statement "do {\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);" do (compound_statement "{\n          if (iVar6 == 0) break;\n          iVar6 = iVar6 + -1;\n          uVar1 = (undefined1)pdVar7->kind;\n          bVar17 = (byte)uVar1 < *pbVar15;\n          bVar16 = uVar1 == *pbVar15;\n          pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n          pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n        }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar1 = (undefined1)pdVar7->kind;" (assignment_expression "uVar1 = (undefined1)pdVar7->kind" identifier = (cast_expression "(undefined1)pdVar7->kind" ( (type_descriptor "undefined1" type_identifier) ) (field_expression "pdVar7->kind" identifier -> field_identifier))) ;) (expression_statement "bVar17 = (byte)uVar1 < *pbVar15;" (assignment_expression "bVar17 = (byte)uVar1 < *pbVar15" identifier = (binary_expression "(byte)uVar1 < *pbVar15" (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar16 = uVar1 == *pbVar15;" (assignment_expression "bVar16 = uVar1 == *pbVar15" identifier = (binary_expression "uVar1 == *pbVar15" identifier == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);" (assignment_expression "pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1)" identifier = (call_expression "(debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1)" (parenthesized_expression "(debug_type)" ( identifier )) (argument_list "((int)pdVar7 + (uint)bVar19 * -2 + 1)" ( (binary_expression "(int)pdVar7 + (uint)bVar19 * -2 + 1" (binary_expression "(int)pdVar7 + (uint)bVar19 * -2" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;" if (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" ( (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00027960;" goto statement_identifier ;)) (expression_statement "iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind);" (assignment_expression "iVar6 = debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind)" identifier = (call_expression "debug_end_block(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind)" identifier (argument_list "(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind)" ( identifier , (binary_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                                        (int)&types_00->basic[1]->kind" (cast_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(types_00->basic[3][1].u.kindirect)->slot" & (field_expression "(types_00->basic[3][1].u.kindirect)->slot" (parenthesized_expression "(types_00->basic[3][1].u.kindirect)" ( (field_expression "types_00->basic[3][1].u.kindirect" (field_expression "types_00->basic[3][1].u" (subscript_expression "types_00->basic[3][1]" (subscript_expression "types_00->basic[3]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) [ number_literal ]) . field_identifier) . field_identifier) )) -> field_identifier))) + (cast_expression "(int)&types_00->basic[1]->kind" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&types_00->basic[1]->kind" & (field_expression "types_00->basic[1]->kind" (subscript_expression "types_00->basic[1]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) -> field_identifier)))) )))) ;) }))) (goto_statement "goto joined_r0x00027bec;" goto statement_identifier ;) })) (if_statement "if (bVar4 < 0x65) {\n      if (bVar4 != 5) {\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(bVar4 < 0x65)" ( (binary_expression "bVar4 < 0x65" identifier < number_literal) )) (compound_statement "{\n      if (bVar4 != 5) {\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }" { (if_statement "if (bVar4 != 5) {\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }" if (parenthesized_expression "(bVar4 != 5)" ( (binary_expression "bVar4 != 5" identifier != number_literal) )) (compound_statement "{\n        if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }\n      }" { (if_statement "if (bVar4 < 6) {\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }\n        else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }" if (parenthesized_expression "(bVar4 < 6)" ( (binary_expression "bVar4 < 6" identifier < number_literal) )) (compound_statement "{\n          if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar14 = (uint)syment.n_type;\n          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }\n          local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);\n          local_c0 = pdVar7;\n          local_b8 = uVar14;\n          bVar3 = bVar4;\n        }" { (if_statement "if (bVar4 != 2) {\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }" if (parenthesized_expression "(bVar4 != 2)" ( (binary_expression "bVar4 != 2" identifier != number_literal) )) (compound_statement "{\n            if (bVar4 != 3) goto LAB_00027b18;\n            if (syment.n_type == 0) goto LAB_00027960;\n          }" { (if_statement "if (bVar4 != 3) goto LAB_00027b18;" if (parenthesized_expression "(bVar4 != 3)" ( (binary_expression "bVar4 != 3" identifier != number_literal) )) (goto_statement "goto LAB_00027b18;" goto statement_identifier ;)) (if_statement "if (syment.n_type == 0) goto LAB_00027960;" if (parenthesized_expression "(syment.n_type == 0)" ( (binary_expression "syment.n_type == 0" (field_expression "syment.n_type" identifier . field_identifier) == number_literal) )) (goto_statement "goto LAB_00027960;" goto statement_identifier ;)) })) (labeled_statement "LAB_000278e8:\n          uVar14 = (uint)syment.n_type;" statement_identifier : (expression_statement "uVar14 = (uint)syment.n_type;" (assignment_expression "uVar14 = (uint)syment.n_type" identifier = (cast_expression "(uint)syment.n_type" ( (type_descriptor "uint" type_identifier) ) (field_expression "syment.n_type" identifier . field_identifier))) ;)) (if_statement "if ((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }" if (parenthesized_expression "((((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f))" ( (binary_expression "(((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14) !=\n              2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)" (parenthesized_expression "(((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14)" ( (binary_expression "((abfd->tdata).coff_obj_data)->local_n_tmask & uVar14" (field_expression "((abfd->tdata).coff_obj_data)->local_n_tmask" (parenthesized_expression "((abfd->tdata).coff_obj_data)" ( (field_expression "(abfd->tdata).coff_obj_data" (parenthesized_expression "(abfd->tdata)" ( (field_expression "abfd->tdata" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) & identifier) )) != (binary_expression "2 << ((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)" number_literal << (parenthesized_expression "((byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)" ( (binary_expression "(byte)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f" (field_expression "(byte)((abfd->tdata).coff_obj_data)->local_n_btshft" (call_expression "(byte)((abfd->tdata).coff_obj_data)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((abfd->tdata).coff_obj_data)" ( (field_expression "(abfd->tdata).coff_obj_data" (parenthesized_expression "(abfd->tdata)" ( (field_expression "abfd->tdata" identifier -> field_identifier) )) . field_identifier) ))) -> field_identifier) & number_literal) )))) )) (compound_statement "{\n            paVar20 = sym;\n            pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);\n            if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }\n            iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);\n            goto joined_r0x00027bec;\n          }" { (expression_statement "paVar20 = sym;" (assignment_expression "paVar20 = sym" identifier = identifier) ;) (expression_statement "pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle);" (assignment_expression "pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle)" identifier = (call_expression "parse_coff_type(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle)" identifier (argument_list "(abfd,&symbols,&types,(long)sym,uVar14,local_d4,1,dhandle)" ( identifier , (pointer_expression "&symbols" & identifier) , (pointer_expression "&types" & identifier) , (cast_expression "(long)sym" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (pdVar7 == (debug_type)0x0) {\n              return 0;\n            }" if (parenthesized_expression "(pdVar7 == (debug_type)0x0)" ( (binary_expression "pdVar7 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20);" (assignment_expression "iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20)" identifier = (call_expression "parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20)" identifier (argument_list "((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                      (internal_syment *)dhandle,pdVar7,local_c4,\n                                      (bfd_boolean)paVar20)" ( (cast_expression "(bfd *)&types" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&types" & identifier)) , identifier , identifier , (cast_expression "(uint)syment.n_sclass" ( (type_descriptor "uint" type_identifier) ) (field_expression "syment.n_sclass" identifier . field_identifier)) , (cast_expression "(internal_syment *)dhandle" ( (type_descriptor "internal_syment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (cast_expression "(bfd_boolean)paVar20" ( (type_descriptor "bfd_boolean" type_identifier) ) identifier) )))) ;) (goto_statement "goto joined_r0x00027bec;" goto statement_identifier ;) })) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (if_statement "if (syment.n_numaux != '\0') {\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }" if (parenthesized_expression "(syment.n_numaux != '\0')" ( (binary_expression "syment.n_numaux != '\0'" (field_expression "syment.n_numaux" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;\n          }" { (expression_statement "local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;" (assignment_expression "local_bc = (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash" identifier = (binary_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash" (binary_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind" (cast_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(types_00->basic[3][1].u.kindirect)->slot" & (field_expression "(types_00->basic[3][1].u.kindirect)->slot" (parenthesized_expression "(types_00->basic[3][1].u.kindirect)" ( (field_expression "types_00->basic[3][1].u.kindirect" (field_expression "types_00->basic[3][1].u" (subscript_expression "types_00->basic[3][1]" (subscript_expression "types_00->basic[3]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) [ number_literal ]) . field_identifier) . field_identifier) )) -> field_identifier))) + (cast_expression "(int)&types_00->basic[1]->kind" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&types_00->basic[1]->kind" & (field_expression "types_00->basic[1]->kind" (subscript_expression "types_00->basic[1]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) -> field_identifier)))) + (field_expression "auxent.x_csect.x_parmhash" (field_expression "auxent.x_csect" identifier . field_identifier) . field_identifier))) ;) })) (expression_statement "local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00);" (assignment_expression "local_b0 = (*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00)" identifier = (call_expression "(*abfd->xvec->_get_lineno)(abfd,(bfd_symbol *)types_00)" (parenthesized_expression "(*abfd->xvec->_get_lineno)" ( (pointer_expression "*abfd->xvec->_get_lineno" * (field_expression "abfd->xvec->_get_lineno" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,(bfd_symbol *)types_00)" ( identifier , (cast_expression "(bfd_symbol *)types_00" ( (type_descriptor "bfd_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_c0 = pdVar7;" (assignment_expression "local_c0 = pdVar7" identifier = identifier) ;) (expression_statement "local_b8 = uVar14;" (assignment_expression "local_b8 = uVar14" identifier = identifier) ;) (expression_statement "bVar3 = bVar4;" (assignment_expression "bVar3 = bVar4" identifier = identifier) ;) }) (else_clause "else if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }" else (if_statement "if ((bVar4 != 7) && (bVar4 != 0xe)) {\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }" if (parenthesized_expression "((bVar4 != 7) && (bVar4 != 0xe))" ( (binary_expression "(bVar4 != 7) && (bVar4 != 0xe)" (parenthesized_expression "(bVar4 != 7)" ( (binary_expression "bVar4 != 7" identifier != number_literal) )) && (parenthesized_expression "(bVar4 != 0xe)" ( (binary_expression "bVar4 != 0xe" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00027b18:\n          paVar20 = sym;\n          pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);\n          if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }\n          iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;\n          goto joined_r0x00027bec;\n        }" { (labeled_statement "LAB_00027b18:\n          paVar20 = sym;" statement_identifier : (expression_statement "paVar20 = sym;" (assignment_expression "paVar20 = sym" identifier = identifier) ;)) (expression_statement "pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle);" (assignment_expression "pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle)" identifier = (call_expression "parse_coff_type(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle)" identifier (argument_list "(abfd,&symbols,&types,(long)sym,(uint)syment.n_type,local_d4,1,\n                                   dhandle)" ( identifier , (pointer_expression "&symbols" & identifier) , (pointer_expression "&types" & identifier) , (cast_expression "(long)sym" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , (cast_expression "(uint)syment.n_type" ( (type_descriptor "uint" type_identifier) ) (field_expression "syment.n_type" identifier . field_identifier)) , identifier , number_literal , identifier )))) ;) (if_statement "if (pdVar7 == (debug_type)0x0) {\n            return 0;\n          }" if (parenthesized_expression "(pdVar7 == (debug_type)0x0)" ( (binary_expression "pdVar7 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)\n          ;" (assignment_expression "iVar6 = parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)" identifier = (call_expression "parse_coff_symbol((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)" identifier (argument_list "((bfd *)&types,types_00,sym,(uint)syment.n_sclass,\n                                    (internal_syment *)dhandle,pdVar7,local_c4,(bfd_boolean)paVar20)" ( (cast_expression "(bfd *)&types" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&types" & identifier)) , identifier , identifier , (cast_expression "(uint)syment.n_sclass" ( (type_descriptor "uint" type_identifier) ) (field_expression "syment.n_sclass" identifier . field_identifier)) , (cast_expression "(internal_syment *)dhandle" ( (type_descriptor "internal_syment *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (cast_expression "(bfd_boolean)paVar20" ( (type_descriptor "bfd_boolean" type_identifier) ) identifier) )))) ;) (goto_statement "goto joined_r0x00027bec;" goto statement_identifier ;) })))) })) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (if_statement "if (0x6a < bVar4) {\n      if (bVar4 == 0x7f) goto LAB_000278e8;\n      if (bVar4 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(0x6a < bVar4)" ( (binary_expression "0x6a < bVar4" number_literal < identifier) )) (compound_statement "{\n      if (bVar4 == 0x7f) goto LAB_000278e8;\n      if (bVar4 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }" { (if_statement "if (bVar4 == 0x7f) goto LAB_000278e8;" if (parenthesized_expression "(bVar4 == 0x7f)" ( (binary_expression "bVar4 == 0x7f" identifier == number_literal) )) (goto_statement "goto LAB_000278e8;" goto statement_identifier ;)) (if_statement "if (bVar4 != 0xff) goto LAB_00027b18;" if (parenthesized_expression "(bVar4 != 0xff)" ( (binary_expression "bVar4 != 0xff" identifier != number_literal) )) (goto_statement "goto LAB_00027b18;" goto statement_identifier ;)) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (if_statement "if (0x67 < bVar4) goto LAB_00027960;" if (parenthesized_expression "(0x67 < bVar4)" ( (binary_expression "0x67 < bVar4" number_literal < identifier) )) (goto_statement "goto LAB_00027960;" goto statement_identifier ;)) (expression_statement "bVar16 = bVar4 < 0x65;" (assignment_expression "bVar16 = bVar4 < 0x65" identifier = (binary_expression "bVar4 < 0x65" identifier < number_literal)) ;) (expression_statement "bVar18 = bVar4 == 0x65;" (assignment_expression "bVar18 = bVar4 == 0x65" identifier = (binary_expression "bVar4 == 0x65" identifier == number_literal)) ;) (if_statement "if (!bVar18) {\n      if (bVar4 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n      if (bVar4 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }" { (if_statement "if (bVar4 == 0x67) goto LAB_00027bcc;" if (parenthesized_expression "(bVar4 == 0x67)" ( (binary_expression "bVar4 == 0x67" identifier == number_literal) )) (goto_statement "goto LAB_00027bcc;" goto statement_identifier ;)) (goto_statement "goto LAB_00027b18;" goto statement_identifier ;) })) (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (expression_statement "pdVar13 = pdVar7;" (assignment_expression "pdVar13 = pdVar7" identifier = identifier) ;) (expression_statement "pbVar15 = &DAT_00033d3e;" (assignment_expression "pbVar15 = &DAT_00033d3e" identifier = (pointer_expression "&DAT_00033d3e" & identifier)) ;) (do_statement "do {\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      uVar1 = (undefined1)pdVar13->kind;\n      bVar16 = (byte)uVar1 < *pbVar15;\n      bVar18 = uVar1 == *pbVar15;\n      pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n      pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);" do (compound_statement "{\n      if (iVar6 == 0) break;\n      iVar6 = iVar6 + -1;\n      uVar1 = (undefined1)pdVar13->kind;\n      bVar16 = (byte)uVar1 < *pbVar15;\n      bVar18 = uVar1 == *pbVar15;\n      pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);\n      pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n    }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar1 = (undefined1)pdVar13->kind;" (assignment_expression "uVar1 = (undefined1)pdVar13->kind" identifier = (cast_expression "(undefined1)pdVar13->kind" ( (type_descriptor "undefined1" type_identifier) ) (field_expression "pdVar13->kind" identifier -> field_identifier))) ;) (expression_statement "bVar16 = (byte)uVar1 < *pbVar15;" (assignment_expression "bVar16 = (byte)uVar1 < *pbVar15" identifier = (binary_expression "(byte)uVar1 < *pbVar15" (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar18 = uVar1 == *pbVar15;" (assignment_expression "bVar18 = uVar1 == *pbVar15" identifier = (binary_expression "uVar1 == *pbVar15" identifier == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1);" (assignment_expression "pdVar13 = (debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1)" identifier = (call_expression "(debug_type)((int)pdVar13 + (uint)bVar19 * -2 + 1)" (parenthesized_expression "(debug_type)" ( identifier )) (argument_list "((int)pdVar13 + (uint)bVar19 * -2 + 1)" ( (binary_expression "(int)pdVar13 + (uint)bVar19 * -2 + 1" (binary_expression "(int)pdVar13 + (uint)bVar19 * -2" (cast_expression "(int)pdVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n      iVar6 = 4;\n      pbVar15 = &DAT_00033d42;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n      iVar6 = 4;\n      pbVar15 = &DAT_00033d42;\n      do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }" { (expression_statement "iVar6 = 4;" (assignment_expression "iVar6 = 4" identifier = number_literal) ;) (expression_statement "pbVar15 = &DAT_00033d42;" (assignment_expression "pbVar15 = &DAT_00033d42" identifier = (pointer_expression "&DAT_00033d42" & identifier)) ;) (do_statement "do {\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);" do (compound_statement "{\n        if (iVar6 == 0) break;\n        iVar6 = iVar6 + -1;\n        uVar1 = (undefined1)pdVar7->kind;\n        bVar17 = (byte)uVar1 < *pbVar15;\n        bVar16 = uVar1 == *pbVar15;\n        pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);\n        pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;\n      }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar1 = (undefined1)pdVar7->kind;" (assignment_expression "uVar1 = (undefined1)pdVar7->kind" identifier = (cast_expression "(undefined1)pdVar7->kind" ( (type_descriptor "undefined1" type_identifier) ) (field_expression "pdVar7->kind" identifier -> field_identifier))) ;) (expression_statement "bVar17 = (byte)uVar1 < *pbVar15;" (assignment_expression "bVar17 = (byte)uVar1 < *pbVar15" identifier = (binary_expression "(byte)uVar1 < *pbVar15" (cast_expression "(byte)uVar1" ( (type_descriptor "byte" type_identifier) ) identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar16 = uVar1 == *pbVar15;" (assignment_expression "bVar16 = uVar1 == *pbVar15" identifier = (binary_expression "uVar1 == *pbVar15" identifier == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1);" (assignment_expression "pdVar7 = (debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1)" identifier = (call_expression "(debug_type)((int)pdVar7 + (uint)bVar19 * -2 + 1)" (parenthesized_expression "(debug_type)" ( identifier )) (argument_list "((int)pdVar7 + (uint)bVar19 * -2 + 1)" ( (binary_expression "(int)pdVar7 + (uint)bVar19 * -2 + 1" (binary_expression "(int)pdVar7 + (uint)bVar19 * -2" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }" if (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" ( (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\n        if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;\n        if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }\n        bVar8 = debug_end_function(dhandle,uVar14);\n        if (bVar8 == 0) {\n          return 0;\n        }\n        local_c4 = (debug_type)0x0;\n        local_bc = 0;\n      }" { (if_statement "if (local_c4 == (debug_type)0x0) {\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }" if (parenthesized_expression "(local_c4 == (debug_type)0x0)" ( (binary_expression "local_c4 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n          pcVar11 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }" { (expression_statement "pcVar11 = "%ld: unexpected .ef\n";" (assignment_expression "pcVar11 = "%ld: unexpected .ef\n"" identifier = (string_literal ""%ld: unexpected .ef\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00027ebd;" goto statement_identifier ;) })) (expression_statement "uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;" (assignment_expression "uVar14 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind" identifier = (binary_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind" (cast_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(types_00->basic[3][1].u.kindirect)->slot" & (field_expression "(types_00->basic[3][1].u.kindirect)->slot" (parenthesized_expression "(types_00->basic[3][1].u.kindirect)" ( (field_expression "types_00->basic[3][1].u.kindirect" (field_expression "types_00->basic[3][1].u" (subscript_expression "types_00->basic[3][1]" (subscript_expression "types_00->basic[3]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) [ number_literal ]) . field_identifier) . field_identifier) )) -> field_identifier))) + (cast_expression "(int)&types_00->basic[1]->kind" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&types_00->basic[1]->kind" & (field_expression "types_00->basic[1]->kind" (subscript_expression "types_00->basic[1]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) -> field_identifier))))) ;) (if_statement "if (uVar14 < local_bc) {\n          uVar14 = local_bc;\n        }" if (parenthesized_expression "(uVar14 < local_bc)" ( (binary_expression "uVar14 < local_bc" identifier < identifier) )) (compound_statement "{\n          uVar14 = local_bc;\n        }" { (expression_statement "uVar14 = local_bc;" (assignment_expression "uVar14 = local_bc" identifier = identifier) ;) })) (expression_statement "bVar8 = debug_end_function(dhandle,uVar14);" (assignment_expression "bVar8 = debug_end_function(dhandle,uVar14)" identifier = (call_expression "debug_end_function(dhandle,uVar14)" identifier (argument_list "(dhandle,uVar14)" ( identifier , identifier )))) ;) (if_statement "if (bVar8 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_c4 = (debug_type)0x0;" (assignment_expression "local_c4 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (if_statement "if (local_c0 == (debug_type)0x0) {\n      pcVar11 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,sym);\n      return 0;\n    }" if (parenthesized_expression "(local_c0 == (debug_type)0x0)" ( (binary_expression "local_c0 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n      pcVar11 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);\n      non_fatal(pcVar11,sym);\n      return 0;\n    }" { (expression_statement "pcVar11 = "%ld: .bf without preceding function";" (assignment_expression "pcVar11 = "%ld: .bf without preceding function"" identifier = (string_literal ""%ld: .bf without preceding function"" " string_content ")) ;) (labeled_statement "LAB_00027ebd:\n      pcVar11 = (char *)dcgettext(0,pcVar11,5);" statement_identifier : (expression_statement "pcVar11 = (char *)dcgettext(0,pcVar11,5);" (assignment_expression "pcVar11 = (char *)dcgettext(0,pcVar11,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar11,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar11,5)" identifier (argument_list "(0,pcVar11,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "non_fatal(pcVar11,sym);" (call_expression "non_fatal(pcVar11,sym)" identifier (argument_list "(pcVar11,sym)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar14 = (int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f);" (assignment_expression "uVar14 = (int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f)" identifier = (binary_expression "(int)local_b8 >> ((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f)" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "((byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f)" ( (binary_expression "(byte)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f" (field_expression "(byte)((abfd->tdata).coff_obj_data)->local_n_tshift" (call_expression "(byte)((abfd->tdata).coff_obj_data)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((abfd->tdata).coff_obj_data)" ( (field_expression "(abfd->tdata).coff_obj_data" (parenthesized_expression "(abfd->tdata)" ( (field_expression "abfd->tdata" identifier -> field_identifier) )) . field_identifier) ))) -> field_identifier) & number_literal) )))) ;) (expression_statement "pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle);" (assignment_expression "pdVar7 = parse_coff_type(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle)" identifier = (call_expression "parse_coff_type(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle)" identifier (argument_list "(abfd,&symbols,&types,(long)sym,\n                             (local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14,local_d4,0,dhandle)" ( identifier , (pointer_expression "&symbols" & identifier) , (pointer_expression "&types" & identifier) , (cast_expression "(long)sym" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) , (binary_expression "(local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^\n                             uVar14" (binary_expression "(local_b8 ^ uVar14) & ((abfd->tdata).coff_obj_data)->local_n_btmask" (parenthesized_expression "(local_b8 ^ uVar14)" ( (binary_expression "local_b8 ^ uVar14" identifier ^ identifier) )) & (field_expression "((abfd->tdata).coff_obj_data)->local_n_btmask" (parenthesized_expression "((abfd->tdata).coff_obj_data)" ( (field_expression "(abfd->tdata).coff_obj_data" (parenthesized_expression "(abfd->tdata)" ( (field_expression "abfd->tdata" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ^ identifier) , identifier , number_literal , identifier )))) ;) (if_statement "if (pdVar7 == (debug_type)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(pdVar7 == (debug_type)0x0)" ( (binary_expression "pdVar7 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (if_statement "if (bVar3 != 2) {\n      uVar14 = (uint)(bVar3 == 0x7f);\n    }" if (parenthesized_expression "(bVar3 != 2)" ( (binary_expression "bVar3 != 2" identifier != number_literal) )) (compound_statement "{\n      uVar14 = (uint)(bVar3 == 0x7f);\n    }" { (expression_statement "uVar14 = (uint)(bVar3 == 0x7f);" (assignment_expression "uVar14 = (uint)(bVar3 == 0x7f)" identifier = (call_expression "(uint)(bVar3 == 0x7f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar3 == 0x7f)" ( (binary_expression "bVar3 == 0x7f" identifier == number_literal) )))) ;) })) (expression_statement "bVar8 = debug_record_function\n                      (dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind);" (assignment_expression "bVar8 = debug_record_function\n                      (dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind)" identifier = (call_expression "debug_record_function\n                      (dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind)" identifier (argument_list "(dhandle,(char *)local_c0,pdVar7,uVar14,\n                       (int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind)" ( identifier , (cast_expression "(char *)local_c0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (binary_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot +\n                       (int)&types_00->basic[1]->kind" (cast_expression "(int)&(types_00->basic[3][1].u.kindirect)->slot" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(types_00->basic[3][1].u.kindirect)->slot" & (field_expression "(types_00->basic[3][1].u.kindirect)->slot" (parenthesized_expression "(types_00->basic[3][1].u.kindirect)" ( (field_expression "types_00->basic[3][1].u.kindirect" (field_expression "types_00->basic[3][1].u" (subscript_expression "types_00->basic[3][1]" (subscript_expression "types_00->basic[3]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) [ number_literal ]) . field_identifier) . field_identifier) )) -> field_identifier))) + (cast_expression "(int)&types_00->basic[1]->kind" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&types_00->basic[1]->kind" & (field_expression "types_00->basic[1]->kind" (subscript_expression "types_00->basic[1]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) -> field_identifier)))) )))) ;) (if_statement "if (bVar8 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (local_b0 != (alent *)0x0) {\n      iVar6 = 0;\n      if (syment.n_numaux != '\0') {\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }\n      pdVar2 = types_00->basic[3][1].u.kindirect;\n      paVar12 = local_b0 + 1;\n      uVar14 = local_b0[1].line_number;\n      while (uVar14 != 0) {\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }\n      local_b8 = 0;\n      local_c4 = (debug_type)0x1;\n      local_b0 = (alent *)0x0;\n      local_c0 = (debug_type)0x0;\n      bVar3 = 0;\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(local_b0 != (alent *)0x0)" ( (binary_expression "local_b0 != (alent *)0x0" identifier != (cast_expression "(alent *)0x0" ( (type_descriptor "alent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar6 = 0;\n      if (syment.n_numaux != '\0') {\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }\n      pdVar2 = types_00->basic[3][1].u.kindirect;\n      paVar12 = local_b0 + 1;\n      uVar14 = local_b0[1].line_number;\n      while (uVar14 != 0) {\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }\n      local_b8 = 0;\n      local_c4 = (debug_type)0x1;\n      local_b0 = (alent *)0x0;\n      local_c0 = (debug_type)0x0;\n      bVar3 = 0;\n      goto LAB_00027960;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (if_statement "if (syment.n_numaux != '\0') {\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }" if (parenthesized_expression "(syment.n_numaux != '\0')" ( (binary_expression "syment.n_numaux != '\0'" (field_expression "syment.n_numaux" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;\n      }" { (expression_statement "iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;" (assignment_expression "iVar6 = (auxent.x_csect.x_parmhash & 0xffffU) - 1" identifier = (binary_expression "(auxent.x_csect.x_parmhash & 0xffffU) - 1" (parenthesized_expression "(auxent.x_csect.x_parmhash & 0xffffU)" ( (binary_expression "auxent.x_csect.x_parmhash & 0xffffU" (field_expression "auxent.x_csect.x_parmhash" (field_expression "auxent.x_csect" identifier . field_identifier) . field_identifier) & number_literal) )) - number_literal)) ;) })) (expression_statement "pdVar2 = types_00->basic[3][1].u.kindirect;" (assignment_expression "pdVar2 = types_00->basic[3][1].u.kindirect" identifier = (field_expression "types_00->basic[3][1].u.kindirect" (field_expression "types_00->basic[3][1].u" (subscript_expression "types_00->basic[3][1]" (subscript_expression "types_00->basic[3]" (field_expression "types_00->basic" identifier -> field_identifier) [ number_literal ]) [ number_literal ]) . field_identifier) . field_identifier)) ;) (expression_statement "paVar12 = local_b0 + 1;" (assignment_expression "paVar12 = local_b0 + 1" identifier = (binary_expression "local_b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = local_b0[1].line_number;" (assignment_expression "uVar14 = local_b0[1].line_number" identifier = (field_expression "local_b0[1].line_number" (subscript_expression "local_b0[1]" identifier [ number_literal ]) . field_identifier)) ;) (while_statement "while (uVar14 != 0) {\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }" while (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;\n        if (bVar8 == 0) {\n          return 0;\n        }\n        paVar12 = paVar12 + 1;\n        uVar14 = paVar12->line_number;\n      }" { (expression_statement "bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)\n        ;" (assignment_expression "bVar8 = debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)" identifier = (call_expression "debug_record_line(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)" identifier (argument_list "(dhandle,uVar14 + iVar6,(int)&pdVar2->slot + (int)(paVar12->u).sym)" ( identifier , (binary_expression "uVar14 + iVar6" identifier + identifier) , (binary_expression "(int)&pdVar2->slot + (int)(paVar12->u).sym" (cast_expression "(int)&pdVar2->slot" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pdVar2->slot" & (field_expression "pdVar2->slot" identifier -> field_identifier))) + (cast_expression "(int)(paVar12->u).sym" ( (type_descriptor "int" primitive_type) ) (field_expression "(paVar12->u).sym" (parenthesized_expression "(paVar12->u)" ( (field_expression "paVar12->u" identifier -> field_identifier) )) . field_identifier))) )))) ;) (if_statement "if (bVar8 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "paVar12 = paVar12 + 1;" (assignment_expression "paVar12 = paVar12 + 1" identifier = (binary_expression "paVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = paVar12->line_number;" (assignment_expression "uVar14 = paVar12->line_number" identifier = (field_expression "paVar12->line_number" identifier -> field_identifier)) ;) })) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_c4 = (debug_type)0x1;" (assignment_expression "local_c4 = (debug_type)0x1" identifier = (cast_expression "(debug_type)0x1" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_b0 = (alent *)0x0;" (assignment_expression "local_b0 = (alent *)0x0" identifier = (cast_expression "(alent *)0x0" ( (type_descriptor "alent *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = (debug_type)0x0;" (assignment_expression "local_c0 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = 0;" (assignment_expression "bVar3 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (debug_type)0x0;" (assignment_expression "local_c0 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_c4 = (debug_type)0x1;" (assignment_expression "local_c4 = (debug_type)0x1" identifier = (cast_expression "(debug_type)0x1" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (if_statement "if (symcount <= symbols.symno) {\n      return 1;\n    }" if (parenthesized_expression "(symcount <= symbols.symno)" ( (binary_expression "symcount <= symbols.symno" identifier <= (field_expression "symbols.symno" identifier . field_identifier)) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "undefined4 FUN_00027800(int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined1 *local_d4;\n  int local_d0;\n  int local_c4;\n  byte *local_c0;\n  uint local_bc;\n  uint local_b8;\n  int local_b0;\n  int local_98;\n  int local_94;\n  undefined1 local_90 [4];\n  uint local_8c;\n  undefined1 local_7c [8];\n  int local_74;\n  ushort local_6a;\n  byte local_68;\n  byte local_67;\n  undefined4 local_64;\n  undefined4 local_60 [17];\n  undefined4 local_1c [2];\n  undefined4 uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  local_98 = 0;\n  local_94 = 0;\n  local_64 = 0;\n  puVar3 = local_60;\n  do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);\n  if (param_3 < 1) {\n    return 1;\n  }\n  local_c4 = 0;\n  local_b0 = 0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar1 = 0;\n  local_c0 = (byte *)0x0;\n  local_d0 = -1;\nLAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 FUN_00027800(int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined1 *local_d4;\n  int local_d0;\n  int local_c4;\n  byte *local_c0;\n  uint local_bc;\n  uint local_b8;\n  int local_b0;\n  int local_98;\n  int local_94;\n  undefined1 local_90 [4];\n  uint local_8c;\n  undefined1 local_7c [8];\n  int local_74;\n  ushort local_6a;\n  byte local_68;\n  byte local_67;\n  undefined4 local_64;\n  undefined4 local_60 [17];\n  undefined4 local_1c [2];\n  undefined4 uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  local_98 = 0;\n  local_94 = 0;\n  local_64 = 0;\n  puVar3 = local_60;\n  do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);\n  if (param_3 < 1) {\n    return 1;\n  }\n  local_c4 = 0;\n  local_b0 = 0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar1 = 0;\n  local_c0 = (byte *)0x0;\n  local_d0 = -1;\nLAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_00027800(int param_1,int param_2,int param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined1 *local_d4;\n  int local_d0;\n  int local_c4;\n  byte *local_c0;\n  uint local_bc;\n  uint local_b8;\n  int local_b0;\n  int local_98;\n  int local_94;\n  undefined1 local_90 [4];\n  uint local_8c;\n  undefined1 local_7c [8];\n  int local_74;\n  ushort local_6a;\n  byte local_68;\n  byte local_67;\n  undefined4 local_64;\n  undefined4 local_60 [17];\n  undefined4 local_1c [2];\n  undefined4 uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  local_98 = 0;\n  local_94 = 0;\n  local_64 = 0;\n  puVar3 = local_60;\n  do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);\n  if (param_3 < 1) {\n    return 1;\n  }\n  local_c4 = 0;\n  local_b0 = 0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar1 = 0;\n  local_c0 = (byte *)0x0;\n  local_d0 = -1;\nLAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined1 *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "byte *local_c0;" type_identifier (pointer_declarator "*local_c0" * identifier) ;) (declaration "uint local_bc;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "undefined1 local_90 [4];" type_identifier (array_declarator "local_90 [4]" identifier [ number_literal ]) ;) (declaration "uint local_8c;" type_identifier identifier ;) (declaration "undefined1 local_7c [8];" type_identifier (array_declarator "local_7c [8]" identifier [ number_literal ]) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "ushort local_6a;" type_identifier identifier ;) (declaration "byte local_68;" type_identifier identifier ;) (declaration "byte local_67;" type_identifier identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60 [17];" type_identifier (array_declarator "local_60 [17]" identifier [ number_literal ]) ;) (declaration "undefined4 local_1c [2];" type_identifier (array_declarator "local_1c [2]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x27809;" (assignment_expression "uStack_14 = 0x27809" identifier = number_literal) ;) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" identifier = identifier) ;) (do_statement "do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);" do (compound_statement "{\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  }" { (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "puVar3 = puVar3 + 1;" (assignment_expression "puVar3 = puVar3 + 1" identifier = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_1c != puVar3)" ( (binary_expression "local_1c != puVar3" identifier != identifier) )) ;) (if_statement "if (param_3 < 1) {\n    return 1;\n  }" if (parenthesized_expression "(param_3 < 1)" ( (binary_expression "param_3 < 1" identifier < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (byte *)0x0;" (assignment_expression "local_c0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = -1;" (assignment_expression "local_d0 = -1" identifier = number_literal) ;) (labeled_statement "LAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  }" { (expression_statement "iVar5 = *(int *)(param_2 + local_98 * 4);" (assignment_expression "iVar5 = *(int *)(param_2 + local_98 * 4)" identifier = (pointer_expression "*(int *)(param_2 + local_98 * 4)" * (cast_expression "(int *)(param_2 + local_98 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + local_98 * 4)" ( (binary_expression "param_2 + local_98 * 4" identifier + (binary_expression "local_98 * 4" identifier * number_literal)) ))))) ;) (expression_statement "iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);" (assignment_expression "iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c)" identifier = (call_expression "bfd_coff_get_syment(param_1,iVar5,local_7c)" identifier (argument_list "(param_1,iVar5,local_7c)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }" { (expression_statement "uVar9 = bfd_get_error();" (assignment_expression "uVar9 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = bfd_errmsg(uVar9);" (assignment_expression "uVar9 = bfd_errmsg(uVar9)" identifier = (call_expression "bfd_errmsg(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "pcVar8 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_syment failed: %s"" identifier = (string_literal ""bfd_coff_get_syment failed: %s"" " string_content ")) ;) (labeled_statement "LAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002b6d0(uVar7,uVar9);" (call_expression "FUN_0002b6d0(uVar7,uVar9)" identifier (argument_list "(uVar7,uVar9)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar13 = *(byte **)(iVar5 + 4);" (assignment_expression "pbVar13 = *(byte **)(iVar5 + 4)" identifier = (pointer_expression "*(byte **)(iVar5 + 4)" * (cast_expression "(byte **)(iVar5 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_d4 = (undefined1 *)0x0;" (assignment_expression "local_d4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = local_94 + 1 + (uint)local_67;" (assignment_expression "iVar4 = local_94 + 1 + (uint)local_67" identifier = (binary_expression "local_94 + 1 + (uint)local_67" (binary_expression "local_94 + 1" identifier + number_literal) + (cast_expression "(uint)local_67" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }" if (parenthesized_expression "((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0))" ( (binary_expression "(local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)" (parenthesized_expression "(local_67 != 0)" ( (binary_expression "local_67 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)" ( (comma_expression "iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0" (assignment_expression "iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90)" identifier = (call_expression "bfd_coff_get_auxent(param_1,iVar5,0,local_90)" identifier (argument_list "(param_1,iVar5,0,local_90)" ( identifier , identifier , number_literal , identifier )))) , (comma_expression "local_d4 = local_90, iVar10 == 0" (assignment_expression "local_d4 = local_90" identifier = identifier) , (binary_expression "iVar10 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }" { (expression_statement "uVar9 = bfd_get_error();" (assignment_expression "uVar9 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = bfd_errmsg(uVar9);" (assignment_expression "uVar9 = bfd_errmsg(uVar9)" identifier = (call_expression "bfd_errmsg(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "pcVar8 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_auxent failed: %s"" identifier = (string_literal ""bfd_coff_get_auxent failed: %s"" " string_content ")) ;) (goto_statement "goto LAB_00027e3b;" goto statement_identifier ;) })) (expression_statement "bVar2 = local_68;" (assignment_expression "bVar2 = local_68" identifier = identifier) ;) (if_statement "if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }" if (parenthesized_expression "(local_94 == local_d0)" ( (binary_expression "local_94 == local_d0" identifier == identifier) )) (compound_statement "{\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }" { (if_statement "if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }" if (parenthesized_expression "(local_68 != 0x67)" ( (binary_expression "local_68 != 0x67" identifier != number_literal) )) (compound_statement "{\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }" { (expression_statement "iVar10 = FUN_0001e300(param_4,"*globals*");" (assignment_expression "iVar10 = FUN_0001e300(param_4,"*globals*")" identifier = (call_expression "FUN_0001e300(param_4,"*globals*")" identifier (argument_list "(param_4,"*globals*")" ( identifier , (string_literal ""*globals*"" " string_content ") )))) ;) (expression_statement "bVar2 = local_68;" (assignment_expression "bVar2 = local_68" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto joined_r0x00027c50;" goto statement_identifier ;) })) (labeled_statement "LAB_00027bcc:\n      local_d0 = local_74;" statement_identifier : (expression_statement "local_d0 = local_74;" (assignment_expression "local_d0 = local_74" identifier = identifier) ;)) (expression_statement "iVar5 = FUN_0001e300(param_4,pbVar13);" (assignment_expression "iVar5 = FUN_0001e300(param_4,pbVar13)" identifier = (call_expression "FUN_0001e300(param_4,pbVar13)" identifier (argument_list "(param_4,pbVar13)" ( identifier , identifier )))) ;) (labeled_statement "joined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }" statement_identifier : (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) }))) (labeled_statement "LAB_00027960:\n      local_94 = iVar4;" statement_identifier : (expression_statement "local_94 = iVar4;" (assignment_expression "local_94 = iVar4" identifier = identifier) ;)) (if_statement "if (param_3 <= local_98) {\n        return 1;\n      }" if (parenthesized_expression "(param_3 <= local_98)" ( (binary_expression "param_3 <= local_98" identifier <= identifier) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (goto_statement "goto LAB_00027971;" goto statement_identifier ;) })) (labeled_statement "joined_r0x00027c50:\n    bVar18 = bVar2 == 100;" statement_identifier : (expression_statement "bVar18 = bVar2 == 100;" (assignment_expression "bVar18 = bVar2 == 100" identifier = (binary_expression "bVar2 == 100" identifier == number_literal)) ;)) (expression_statement "bVar16 = bVar2 < 100;" (assignment_expression "bVar16 = bVar2 < 100" identifier = (binary_expression "bVar2 < 100" identifier < number_literal)) ;) (expression_statement "local_68 = bVar2;" (assignment_expression "local_68 = bVar2" identifier = identifier) ;) (if_statement "if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }" { (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_00033d5b;" (assignment_expression "pbVar14 = &DAT_00033d5b" identifier = (pointer_expression "&DAT_00033d5b" & identifier)) ;) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar12 < *pbVar14;" (assignment_expression "bVar16 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar12 == *pbVar14;" (assignment_expression "bVar18 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" { (expression_statement "iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));" (assignment_expression "iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier = (call_expression "FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier (argument_list "(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" ( identifier , (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )))) ;) }) (else_clause "else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" else (compound_statement "{\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" { (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar12 = &DAT_00033d5f;" (assignment_expression "pbVar12 = &DAT_00033d5f" identifier = (pointer_expression "&DAT_00033d5f" & identifier)) ;) (do_statement "do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);" do (compound_statement "{\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar12;" (assignment_expression "bVar17 = *pbVar13 < *pbVar12" identifier = (binary_expression "*pbVar13 < *pbVar12" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar12;" (assignment_expression "bVar16 = *pbVar13 == *pbVar12" identifier = (binary_expression "*pbVar13 == *pbVar12" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;" if (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" ( (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00027960;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));" (assignment_expression "iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier = (call_expression "FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier (argument_list "(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" ( identifier , (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )))) ;) }))) (goto_statement "goto joined_r0x00027bec;" goto statement_identifier ;) })) (if_statement "if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(bVar2 < 0x65)" ( (binary_expression "bVar2 < 0x65" identifier < number_literal) )) (compound_statement "{\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }" { (if_statement "if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }" if (parenthesized_expression "(bVar2 != 5)" ( (binary_expression "bVar2 != 5" identifier != number_literal) )) (compound_statement "{\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }" { (if_statement "if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" if (parenthesized_expression "(bVar2 < 6)" ( (binary_expression "bVar2 < 6" identifier < number_literal) )) (compound_statement "{\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }" { (if_statement "if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }" if (parenthesized_expression "(bVar2 != 2)" ( (binary_expression "bVar2 != 2" identifier != number_literal) )) (compound_statement "{\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }" { (if_statement "if (bVar2 != 3) goto LAB_00027b18;" if (parenthesized_expression "(bVar2 != 3)" ( (binary_expression "bVar2 != 3" identifier != number_literal) )) (goto_statement "goto LAB_00027b18;" goto statement_identifier ;)) (if_statement "if (local_6a == 0) goto LAB_00027960;" if (parenthesized_expression "(local_6a == 0)" ( (binary_expression "local_6a == 0" identifier == number_literal) )) (goto_statement "goto LAB_00027960;" goto statement_identifier ;)) })) (labeled_statement "LAB_000278e8:\n          uVar15 = (uint)local_6a;" statement_identifier : (expression_statement "uVar15 = (uint)local_6a;" (assignment_expression "uVar15 = (uint)local_6a" identifier = (cast_expression "(uint)local_6a" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (if_statement "if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }" if (parenthesized_expression "((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f))" ( (binary_expression "(*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)" (parenthesized_expression "(*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15)" ( (binary_expression "*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15" (pointer_expression "*(uint *)(*(int *)(param_1 + 0x9c) + 0x28)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x9c) + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x28)" ( (binary_expression "*(int *)(param_1 + 0x9c) + 0x28" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) + number_literal) )))) & identifier) )) != (binary_expression "2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)" number_literal << (parenthesized_expression "((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)" ( (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f" (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x24)" ( (binary_expression "*(int *)(param_1 + 0x9c) + 0x24" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )))) )) (compound_statement "{\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }" { (expression_statement "iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);" (assignment_expression "iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4)" identifier = (call_expression "FUN_00026ea0(local_94,uVar15,local_d4,1,param_4)" identifier (argument_list "(local_94,uVar15,local_d4,1,param_4)" ( identifier , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);" (assignment_expression "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4)" identifier = (call_expression "FUN_00026cf0(local_68,param_4,iVar5,local_c4)" identifier (argument_list "(local_68,param_4,iVar5,local_c4)" ( identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto joined_r0x00027bec;" goto statement_identifier ;) })) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (if_statement "if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }" if (parenthesized_expression "(local_67 != 0)" ( (binary_expression "local_67 != 0" identifier != number_literal) )) (compound_statement "{\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }" { (expression_statement "local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);" (assignment_expression "local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" identifier = (binary_expression "local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (binary_expression "local_8c + *(int *)(iVar5 + 8)" identifier + (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) ))))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);" (assignment_expression "local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5)" identifier = (call_expression "(**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5)" (parenthesized_expression "(**(code **)(*(int *)(param_1 + 4) + 0x124))" ( (pointer_expression "**(code **)(*(int *)(param_1 + 4) + 0x124)" * (pointer_expression "*(code **)(*(int *)(param_1 + 4) + 0x124)" * (cast_expression "(code **)(*(int *)(param_1 + 4) + 0x124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0x124)" ( (binary_expression "*(int *)(param_1 + 4) + 0x124" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1,iVar5)" ( identifier , identifier )))) ;) (expression_statement "local_c0 = pbVar13;" (assignment_expression "local_c0 = pbVar13" identifier = identifier) ;) (expression_statement "local_b8 = uVar15;" (assignment_expression "local_b8 = uVar15" identifier = identifier) ;) (expression_statement "bVar1 = bVar2;" (assignment_expression "bVar1 = bVar2" identifier = identifier) ;) }) (else_clause "else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" else (if_statement "if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" if (parenthesized_expression "((bVar2 != 7) && (bVar2 != 0xe))" ( (binary_expression "(bVar2 != 7) && (bVar2 != 0xe)" (parenthesized_expression "(bVar2 != 7)" ( (binary_expression "bVar2 != 7" identifier != number_literal) )) && (parenthesized_expression "(bVar2 != 0xe)" ( (binary_expression "bVar2 != 0xe" identifier != number_literal) ))) )) (compound_statement "{\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" { (labeled_statement "LAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);" statement_identifier : (expression_statement "iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);" (assignment_expression "iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4)" identifier = (call_expression "FUN_00026ea0(local_94,local_6a,local_d4,1,param_4)" identifier (argument_list "(local_94,local_6a,local_d4,1,param_4)" ( identifier , identifier , identifier , number_literal , identifier )))) ;)) (if_statement "if (iVar5 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);" (assignment_expression "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4)" identifier = (call_expression "FUN_00026cf0(local_68,param_4,iVar5,local_c4)" identifier (argument_list "(local_68,param_4,iVar5,local_c4)" ( identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto joined_r0x00027bec;" goto statement_identifier ;) })))) })) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (if_statement "if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(0x6a < bVar2)" ( (binary_expression "0x6a < bVar2" number_literal < identifier) )) (compound_statement "{\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }" { (if_statement "if (bVar2 == 0x7f) goto LAB_000278e8;" if (parenthesized_expression "(bVar2 == 0x7f)" ( (binary_expression "bVar2 == 0x7f" identifier == number_literal) )) (goto_statement "goto LAB_000278e8;" goto statement_identifier ;)) (if_statement "if (bVar2 != 0xff) goto LAB_00027b18;" if (parenthesized_expression "(bVar2 != 0xff)" ( (binary_expression "bVar2 != 0xff" identifier != number_literal) )) (goto_statement "goto LAB_00027b18;" goto statement_identifier ;)) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (if_statement "if (0x67 < bVar2) goto LAB_00027960;" if (parenthesized_expression "(0x67 < bVar2)" ( (binary_expression "0x67 < bVar2" number_literal < identifier) )) (goto_statement "goto LAB_00027960;" goto statement_identifier ;)) (expression_statement "bVar16 = bVar2 < 0x65;" (assignment_expression "bVar16 = bVar2 < 0x65" identifier = (binary_expression "bVar2 < 0x65" identifier < number_literal)) ;) (expression_statement "bVar18 = bVar2 == 0x65;" (assignment_expression "bVar18 = bVar2 == 0x65" identifier = (binary_expression "bVar2 == 0x65" identifier == number_literal)) ;) (if_statement "if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }" { (if_statement "if (bVar2 == 0x67) goto LAB_00027bcc;" if (parenthesized_expression "(bVar2 == 0x67)" ( (binary_expression "bVar2 == 0x67" identifier == number_literal) )) (goto_statement "goto LAB_00027bcc;" goto statement_identifier ;)) (goto_statement "goto LAB_00027b18;" goto statement_identifier ;) })) (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar14 = &DAT_00033d3e;" (assignment_expression "pbVar14 = &DAT_00033d3e" identifier = (pointer_expression "&DAT_00033d3e" & identifier)) ;) (do_statement "do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);" do (compound_statement "{\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar12 < *pbVar14;" (assignment_expression "bVar16 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar12 == *pbVar14;" (assignment_expression "bVar18 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }" { (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (expression_statement "pbVar12 = &DAT_00033d42;" (assignment_expression "pbVar12 = &DAT_00033d42" identifier = (pointer_expression "&DAT_00033d42" & identifier)) ;) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);" do (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar12;" (assignment_expression "bVar17 = *pbVar13 < *pbVar12" identifier = (binary_expression "*pbVar13 < *pbVar12" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar12;" (assignment_expression "bVar16 = *pbVar13 == *pbVar12" identifier = (binary_expression "*pbVar13 == *pbVar12" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }" if (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" ( (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }" { (if_statement "if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }" if (parenthesized_expression "(local_c4 == 0)" ( (binary_expression "local_c4 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }" { (expression_statement "pcVar8 = "%ld: unexpected .ef\n";" (assignment_expression "pcVar8 = "%ld: unexpected .ef\n"" identifier = (string_literal ""%ld: unexpected .ef\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_00027ebd;" goto statement_identifier ;) })) (expression_statement "uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);" (assignment_expression "uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" identifier = (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }" if (parenthesized_expression "(uVar15 < local_bc)" ( (binary_expression "uVar15 < local_bc" identifier < identifier) )) (compound_statement "{\n          uVar15 = local_bc;\n        }" { (expression_statement "uVar15 = local_bc;" (assignment_expression "uVar15 = local_bc" identifier = identifier) ;) })) (expression_statement "iVar5 = FUN_0001e6d0(param_4,uVar15);" (assignment_expression "iVar5 = FUN_0001e6d0(param_4,uVar15)" identifier = (call_expression "FUN_0001e6d0(param_4,uVar15)" identifier (argument_list "(param_4,uVar15)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) })) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (if_statement "if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }" if (parenthesized_expression "(local_c0 == (byte *)0x0)" ( (binary_expression "local_c0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }" { (expression_statement "pcVar8 = "%ld: .bf without preceding function";" (assignment_expression "pcVar8 = "%ld: .bf without preceding function"" identifier = (string_literal ""%ld: .bf without preceding function"" " string_content ")) ;) (labeled_statement "LAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002b6d0(uVar9,local_94);" (call_expression "FUN_0002b6d0(uVar9,local_94)" identifier (argument_list "(uVar9,local_94)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);" (assignment_expression "uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f)" identifier = (binary_expression "(int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f)" (cast_expression "(int)local_b8" ( (type_descriptor "int" primitive_type) ) identifier) >> (parenthesized_expression "((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f)" ( (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f" (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c)" (parenthesized_expression "(byte)" ( identifier )) * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x2c)" ( (binary_expression "*(int *)(param_1 + 0x9c) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )))) ;) (expression_statement "iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);" (assignment_expression "iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4)" identifier = (call_expression "FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4)" identifier (argument_list "(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4)" ( identifier , (binary_expression "(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15" (binary_expression "(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)" (parenthesized_expression "(local_b8 ^ uVar15)" ( (binary_expression "local_b8 ^ uVar15" identifier ^ identifier) )) & (pointer_expression "*(uint *)(*(int *)(param_1 + 0x9c) + 0x20)" * (cast_expression "(uint *)(*(int *)(param_1 + 0x9c) + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x20)" ( (binary_expression "*(int *)(param_1 + 0x9c) + 0x20" (pointer_expression "*(int *)(param_1 + 0x9c)" * (cast_expression "(int *)(param_1 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x9c)" ( (binary_expression "param_1 + 0x9c" identifier + number_literal) )))) + number_literal) ))))) ^ identifier) , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));" (assignment_expression "iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier = (call_expression "FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" identifier (argument_list "(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" ( identifier , identifier , identifier , (binary_expression "bVar1 == 2 || bVar1 == 0x7f" (binary_expression "bVar1 == 2" identifier == number_literal) || (binary_expression "bVar1 == 0x7f" identifier == number_literal)) , (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (if_statement "if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }" if (parenthesized_expression "(local_b0 != 0)" ( (binary_expression "local_b0 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }" if (parenthesized_expression "(local_67 != 0)" ( (binary_expression "local_67 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar10 = (local_8c & 0xffff) - 1;\n      }" { (expression_statement "iVar10 = (local_8c & 0xffff) - 1;" (assignment_expression "iVar10 = (local_8c & 0xffff) - 1" identifier = (binary_expression "(local_8c & 0xffff) - 1" (parenthesized_expression "(local_8c & 0xffff)" ( (binary_expression "local_8c & 0xffff" identifier & number_literal) )) - number_literal)) ;) })) (expression_statement "iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);" (assignment_expression "iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "piVar11 = (int *)(local_b0 + 8);" (assignment_expression "piVar11 = (int *)(local_b0 + 8)" identifier = (cast_expression "(int *)(local_b0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 8)" ( (binary_expression "local_b0 + 8" identifier + number_literal) )))) ;) (expression_statement "iVar6 = *(int *)(local_b0 + 8);" (assignment_expression "iVar6 = *(int *)(local_b0 + 8)" identifier = (pointer_expression "*(int *)(local_b0 + 8)" * (cast_expression "(int *)(local_b0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_b0 + 8)" ( (binary_expression "local_b0 + 8" identifier + number_literal) ))))) ;) (while_statement "while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }" while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }" { (expression_statement "iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);" (assignment_expression "iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5)" identifier = (call_expression "FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5)" identifier (argument_list "(param_4,iVar6 + iVar10,piVar11[1] + iVar5)" ( identifier , (binary_expression "iVar6 + iVar10" identifier + identifier) , (binary_expression "piVar11[1] + iVar5" (subscript_expression "piVar11[1]" identifier [ number_literal ]) + identifier) )))) ;) (if_statement "if (iVar6 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar11 = piVar11 + 2;" (assignment_expression "piVar11 = piVar11 + 2" identifier = (binary_expression "piVar11 + 2" identifier + number_literal)) ;) (expression_statement "iVar6 = *piVar11;" (assignment_expression "iVar6 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) })) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_c4 = 1;" (assignment_expression "local_c4 = 1" identifier = number_literal) ;) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (byte *)0x0;" (assignment_expression "local_c0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00027960;" goto statement_identifier ;) })) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (expression_statement "local_c0 = (byte *)0x0;" (assignment_expression "local_c0 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c4 = 1;" (assignment_expression "local_c4 = 1" identifier = number_literal) ;) (expression_statement "local_94 = iVar4;" (assignment_expression "local_94 = iVar4" identifier = identifier) ;) (if_statement "if (param_3 <= local_98) {\n      return 1;\n    }" if (parenthesized_expression "(param_3 <= local_98)" ( (binary_expression "param_3 <= local_98" identifier <= identifier) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 *)) ) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & IDENT) )) != (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_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) )))) + LIT) )))) & LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (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 (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 *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })))) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (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 *)) ) (parenthesized_expression ( (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 < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_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) )))) + LIT) )))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ^ IDENT) , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) , (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 (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 == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "undefined4 FUN_00027800(int param_1,int param_2,int param_3,undefined4 param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined1 *local_d4;\n  int local_d0;\n  int local_c4;\n  byte *local_c0;\n  uint local_bc;\n  uint local_b8;\n  int local_b0;\n  int local_98;\n  int local_94;\n  undefined1 local_90 [4];\n  uint local_8c;\n  undefined1 local_7c [8];\n  int local_74;\n  ushort local_6a;\n  byte local_68;\n  byte local_67;\n  undefined4 local_64;\n  undefined4 local_60 [17];\n  undefined4 local_1c [2];\n  undefined4 uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  local_98 = 0;\n  local_94 = 0;\n  local_64 = 0;\n  puVar3 = local_60;\n  do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);\n  if (param_3 < 1) {\n    return 1;\n  }\n  local_c4 = 0;\n  local_b0 = 0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar1 = 0;\n  local_c0 = (byte *)0x0;\n  local_d0 = -1;\nLAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );\n}" (type_identifier "undefined4") (function_declarator "FUN_00027800(int param_1,int param_2,int param_3,undefined4 param_4)" (identifier "FUN_00027800") (parameter_list "(int param_1,int param_2,int param_3,undefined4 param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  undefined4 uVar9;\n  int iVar10;\n  int *piVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  undefined1 *local_d4;\n  int local_d0;\n  int local_c4;\n  byte *local_c0;\n  uint local_bc;\n  uint local_b8;\n  int local_b0;\n  int local_98;\n  int local_94;\n  undefined1 local_90 [4];\n  uint local_8c;\n  undefined1 local_7c [8];\n  int local_74;\n  ushort local_6a;\n  byte local_68;\n  byte local_67;\n  undefined4 local_64;\n  undefined4 local_60 [17];\n  undefined4 local_1c [2];\n  undefined4 uStack_14;\n  \n  bVar19 = 0;\n  uStack_14 = 0x27809;\n  local_98 = 0;\n  local_94 = 0;\n  local_64 = 0;\n  puVar3 = local_60;\n  do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);\n  if (param_3 < 1) {\n    return 1;\n  }\n  local_c4 = 0;\n  local_b0 = 0;\n  local_bc = 0;\n  local_b8 = 0;\n  bVar1 = 0;\n  local_c0 = (byte *)0x0;\n  local_d0 = -1;\nLAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "undefined1 *local_d4;" (type_identifier "undefined1") (pointer_declarator "*local_d4" (* "*") (identifier "local_d4")) (; ";")) (declaration "int local_d0;" (primitive_type "int") (identifier "local_d0") (; ";")) (declaration "int local_c4;" (primitive_type "int") (identifier "local_c4") (; ";")) (declaration "byte *local_c0;" (type_identifier "byte") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "uint local_bc;" (type_identifier "uint") (identifier "local_bc") (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "int local_b0;" (primitive_type "int") (identifier "local_b0") (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "int local_94;" (primitive_type "int") (identifier "local_94") (; ";")) (declaration "undefined1 local_90 [4];" (type_identifier "undefined1") (array_declarator "local_90 [4]" (identifier "local_90") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_8c;" (type_identifier "uint") (identifier "local_8c") (; ";")) (declaration "undefined1 local_7c [8];" (type_identifier "undefined1") (array_declarator "local_7c [8]" (identifier "local_7c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "ushort local_6a;" (type_identifier "ushort") (identifier "local_6a") (; ";")) (declaration "byte local_68;" (type_identifier "byte") (identifier "local_68") (; ";")) (declaration "byte local_67;" (type_identifier "byte") (identifier "local_67") (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "undefined4 local_60 [17];" (type_identifier "undefined4") (array_declarator "local_60 [17]" (identifier "local_60") ([ "[") (number_literal "17") (] "]")) (; ";")) (declaration "undefined4 local_1c [2];" (type_identifier "undefined4") (array_declarator "local_1c [2]" (identifier "local_1c") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x27809;" (assignment_expression "uStack_14 = 0x27809" (identifier "uStack_14") (= "=") (number_literal "0x27809")) (; ";")) (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = local_60;" (assignment_expression "puVar3 = local_60" (identifier "puVar3") (= "=") (identifier "local_60")) (; ";")) (do_statement "do {\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  } while (local_1c != puVar3);" (do "do") (compound_statement "{\n    *puVar3 = 0;\n    puVar3 = puVar3 + 1;\n  }" ({ "{") (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = puVar3 + 1;" (assignment_expression "puVar3 = puVar3 + 1" (identifier "puVar3") (= "=") (binary_expression "puVar3 + 1" (identifier "puVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_1c != puVar3)" (( "(") (binary_expression "local_1c != puVar3" (identifier "local_1c") (!= "!=") (identifier "puVar3")) () ")")) (; ";")) (if_statement "if (param_3 < 1) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(param_3 < 1)" (( "(") (binary_expression "param_3 < 1" (identifier "param_3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" (identifier "local_c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" (identifier "bVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c0 = (byte *)0x0;" (assignment_expression "local_c0 = (byte *)0x0" (identifier "local_c0") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_d0 = -1;" (assignment_expression "local_d0 = -1" (identifier "local_d0") (= "=") (number_literal "-1")) (; ";")) (labeled_statement "LAB_00027971:\n  do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );" (statement_identifier "LAB_00027971") (: ":") (do_statement "do {\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    iVar5 = *(int *)(param_2 + local_98 * 4);\n    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);\n    if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }\n    pbVar13 = *(byte **)(iVar5 + 4);\n    local_d4 = (undefined1 *)0x0;\n    local_98 = local_98 + 1;\n    iVar4 = local_94 + 1 + (uint)local_67;\n    if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }\n    bVar2 = local_68;\n    if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }\njoined_r0x00027c50:\n    bVar18 = bVar2 == 100;\n    bVar16 = bVar2 < 100;\n    local_68 = bVar2;\n    if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }\n    if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }\n    if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }\n    if (0x67 < bVar2) goto LAB_00027960;\n    bVar16 = bVar2 < 0x65;\n    bVar18 = bVar2 == 0x65;\n    if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }\n    iVar10 = 4;\n    pbVar12 = pbVar13;\n    pbVar14 = &DAT_00033d3e;\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }\n    if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }\n    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);\n    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);\n    if (iVar10 == 0) {\n      return 0;\n    }\n    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n    if (iVar10 == 0) {\n      return 0;\n    }\n    if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }\n    local_b8 = 0;\n    bVar1 = 0;\n    local_c0 = (byte *)0x0;\n    local_c4 = 1;\n    local_94 = iVar4;\n    if (param_3 <= local_98) {\n      return 1;\n    }\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(param_2 + local_98 * 4);" (assignment_expression "iVar5 = *(int *)(param_2 + local_98 * 4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_2 + local_98 * 4)" (* "*") (cast_expression "(int *)(param_2 + local_98 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + local_98 * 4)" (( "(") (binary_expression "param_2 + local_98 * 4" (identifier "param_2") (+ "+") (binary_expression "local_98 * 4" (identifier "local_98") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);" (assignment_expression "iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c)" (identifier "iVar4") (= "=") (call_expression "bfd_coff_get_syment(param_1,iVar5,local_7c)" (identifier "bfd_coff_get_syment") (argument_list "(param_1,iVar5,local_7c)" (( "(") (identifier "param_1") (, ",") (identifier "iVar5") (, ",") (identifier "local_7c") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_syment failed: %s";\nLAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar7,uVar9);\n      return 0;\n    }" ({ "{") (expression_statement "uVar9 = bfd_get_error();" (assignment_expression "uVar9 = bfd_get_error()" (identifier "uVar9") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = bfd_errmsg(uVar9);" (assignment_expression "uVar9 = bfd_errmsg(uVar9)" (identifier "uVar9") (= "=") (call_expression "bfd_errmsg(uVar9)" (identifier "bfd_errmsg") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "pcVar8 = "bfd_coff_get_syment failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_syment failed: %s"" (identifier "pcVar8") (= "=") (string_literal ""bfd_coff_get_syment failed: %s"" (" """) (string_content "bfd_coff_get_syment failed: %s") (" """))) (; ";")) (labeled_statement "LAB_00027e3b:\n      uVar7 = dcgettext(0,pcVar8,5);" (statement_identifier "LAB_00027e3b") (: ":") (expression_statement "uVar7 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar8,5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,pcVar8,5)" (identifier "dcgettext") (argument_list "(0,pcVar8,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar8") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002b6d0(uVar7,uVar9);" (call_expression "FUN_0002b6d0(uVar7,uVar9)" (identifier "FUN_0002b6d0") (argument_list "(uVar7,uVar9)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar9") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pbVar13 = *(byte **)(iVar5 + 4);" (assignment_expression "pbVar13 = *(byte **)(iVar5 + 4)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(iVar5 + 4)" (* "*") (cast_expression "(byte **)(iVar5 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_d4 = (undefined1 *)0x0;" (assignment_expression "local_d4 = (undefined1 *)0x0" (identifier "local_d4") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" (identifier "local_98") (= "=") (binary_expression "local_98 + 1" (identifier "local_98") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = local_94 + 1 + (uint)local_67;" (assignment_expression "iVar4 = local_94 + 1 + (uint)local_67" (identifier "iVar4") (= "=") (binary_expression "local_94 + 1 + (uint)local_67" (binary_expression "local_94 + 1" (identifier "local_94") (+ "+") (number_literal "1")) (+ "+") (cast_expression "(uint)local_67" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_67")))) (; ";")) (if_statement "if ((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }" (if "if") (parenthesized_expression "((local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0))" (( "(") (binary_expression "(local_67 != 0) &&\n       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)" (parenthesized_expression "(local_67 != 0)" (( "(") (binary_expression "local_67 != 0" (identifier "local_67") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)" (( "(") (comma_expression "iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0" (assignment_expression "iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90)" (identifier "iVar10") (= "=") (call_expression "bfd_coff_get_auxent(param_1,iVar5,0,local_90)" (identifier "bfd_coff_get_auxent") (argument_list "(param_1,iVar5,0,local_90)" (( "(") (identifier "param_1") (, ",") (identifier "iVar5") (, ",") (number_literal "0") (, ",") (identifier "local_90") () ")")))) (, ",") (comma_expression "local_d4 = local_90, iVar10 == 0" (assignment_expression "local_d4 = local_90" (identifier "local_d4") (= "=") (identifier "local_90")) (, ",") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n      uVar9 = bfd_get_error();\n      uVar9 = bfd_errmsg(uVar9);\n      pcVar8 = "bfd_coff_get_auxent failed: %s";\n      goto LAB_00027e3b;\n    }" ({ "{") (expression_statement "uVar9 = bfd_get_error();" (assignment_expression "uVar9 = bfd_get_error()" (identifier "uVar9") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = bfd_errmsg(uVar9);" (assignment_expression "uVar9 = bfd_errmsg(uVar9)" (identifier "uVar9") (= "=") (call_expression "bfd_errmsg(uVar9)" (identifier "bfd_errmsg") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "pcVar8 = "bfd_coff_get_auxent failed: %s";" (assignment_expression "pcVar8 = "bfd_coff_get_auxent failed: %s"" (identifier "pcVar8") (= "=") (string_literal ""bfd_coff_get_auxent failed: %s"" (" """) (string_content "bfd_coff_get_auxent failed: %s") (" """))) (; ";")) (goto_statement "goto LAB_00027e3b;" (goto "goto") (statement_identifier "LAB_00027e3b") (; ";")) (} "}"))) (expression_statement "bVar2 = local_68;" (assignment_expression "bVar2 = local_68" (identifier "bVar2") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (local_94 == local_d0) {\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }" (if "if") (parenthesized_expression "(local_94 == local_d0)" (( "(") (binary_expression "local_94 == local_d0" (identifier "local_94") (== "==") (identifier "local_d0")) () ")")) (compound_statement "{\n      if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }\nLAB_00027bcc:\n      local_d0 = local_74;\n      iVar5 = FUN_0001e300(param_4,pbVar13);\njoined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }\nLAB_00027960:\n      local_94 = iVar4;\n      if (param_3 <= local_98) {\n        return 1;\n      }\n      goto LAB_00027971;\n    }" ({ "{") (if_statement "if (local_68 != 0x67) {\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }" (if "if") (parenthesized_expression "(local_68 != 0x67)" (( "(") (binary_expression "local_68 != 0x67" (identifier "local_68") (!= "!=") (number_literal "0x67")) () ")")) (compound_statement "{\n        iVar10 = FUN_0001e300(param_4,"*globals*");\n        bVar2 = local_68;\n        if (iVar10 == 0) {\n          return 0;\n        }\n        goto joined_r0x00027c50;\n      }" ({ "{") (expression_statement "iVar10 = FUN_0001e300(param_4,"*globals*");" (assignment_expression "iVar10 = FUN_0001e300(param_4,"*globals*")" (identifier "iVar10") (= "=") (call_expression "FUN_0001e300(param_4,"*globals*")" (identifier "FUN_0001e300") (argument_list "(param_4,"*globals*")" (( "(") (identifier "param_4") (, ",") (string_literal ""*globals*"" (" """) (string_content "*globals*") (" """)) () ")")))) (; ";")) (expression_statement "bVar2 = local_68;" (assignment_expression "bVar2 = local_68" (identifier "bVar2") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (iVar10 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto joined_r0x00027c50;" (goto "goto") (statement_identifier "joined_r0x00027c50") (; ";")) (} "}"))) (labeled_statement "LAB_00027bcc:\n      local_d0 = local_74;" (statement_identifier "LAB_00027bcc") (: ":") (expression_statement "local_d0 = local_74;" (assignment_expression "local_d0 = local_74" (identifier "local_d0") (= "=") (identifier "local_74")) (; ";"))) (expression_statement "iVar5 = FUN_0001e300(param_4,pbVar13);" (assignment_expression "iVar5 = FUN_0001e300(param_4,pbVar13)" (identifier "iVar5") (= "=") (call_expression "FUN_0001e300(param_4,pbVar13)" (identifier "FUN_0001e300") (argument_list "(param_4,pbVar13)" (( "(") (identifier "param_4") (, ",") (identifier "pbVar13") () ")")))) (; ";")) (labeled_statement "joined_r0x00027bec:\n      if (iVar5 == 0) {\n        return 0;\n      }" (statement_identifier "joined_r0x00027bec") (: ":") (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (labeled_statement "LAB_00027960:\n      local_94 = iVar4;" (statement_identifier "LAB_00027960") (: ":") (expression_statement "local_94 = iVar4;" (assignment_expression "local_94 = iVar4" (identifier "local_94") (= "=") (identifier "iVar4")) (; ";"))) (if_statement "if (param_3 <= local_98) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(param_3 <= local_98)" (( "(") (binary_expression "param_3 <= local_98" (identifier "param_3") (<= "<=") (identifier "local_98")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (goto_statement "goto LAB_00027971;" (goto "goto") (statement_identifier "LAB_00027971") (; ";")) (} "}"))) (labeled_statement "joined_r0x00027c50:\n    bVar18 = bVar2 == 100;" (statement_identifier "joined_r0x00027c50") (: ":") (expression_statement "bVar18 = bVar2 == 100;" (assignment_expression "bVar18 = bVar2 == 100" (identifier "bVar18") (= "=") (binary_expression "bVar2 == 100" (identifier "bVar2") (== "==") (number_literal "100"))) (; ";"))) (expression_statement "bVar16 = bVar2 < 100;" (assignment_expression "bVar16 = bVar2 < 100" (identifier "bVar16") (= "=") (binary_expression "bVar2 < 100" (identifier "bVar2") (< "<") (number_literal "100"))) (; ";")) (expression_statement "local_68 = bVar2;" (assignment_expression "local_68 = bVar2" (identifier "local_68") (= "=") (identifier "bVar2")) (; ";")) (if_statement "if (bVar18) {\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }" (if "if") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (compound_statement "{\n      iVar10 = 4;\n      pbVar12 = pbVar13;\n      pbVar14 = &DAT_00033d5b;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);\n      bVar17 = false;\n      bVar16 = (!bVar16 && !bVar18) == bVar16;\n      if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      goto joined_r0x00027bec;\n    }" ({ "{") (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" (identifier "iVar10") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" (identifier "pbVar12") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar14 = &DAT_00033d5b;" (assignment_expression "pbVar14 = &DAT_00033d5b" (identifier "pbVar14") (= "=") (pointer_expression "&DAT_00033d5b" (& "&") (identifier "DAT_00033d5b"))) (; ";")) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      } while (bVar18);" (do "do") (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar12 < *pbVar14;\n        bVar18 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar12 < *pbVar14;" (assignment_expression "bVar16 = *pbVar12 < *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar18 = *pbVar12 == *pbVar14;" (assignment_expression "bVar18 = *pbVar12 == *pbVar14" (identifier "bVar18") (= "=") (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" (identifier "bVar16") (= "=") (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" (( "(") (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (bVar16) {\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }\n      else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (compound_statement "{\n        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" ({ "{") (expression_statement "iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));" (assignment_expression "iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" (identifier "iVar5") (= "=") (call_expression "FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" (identifier "FUN_0001e770") (argument_list "(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" (( "(") (identifier "param_4") (, ",") (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" (else "else") (compound_statement "{\n        iVar10 = 4;\n        pbVar12 = &DAT_00033d5f;\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;\n        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));\n      }" ({ "{") (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" (identifier "iVar10") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar12 = &DAT_00033d5f;" (assignment_expression "pbVar12 = &DAT_00033d5f" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_00033d5f" (& "&") (identifier "DAT_00033d5f"))) (; ";")) (do_statement "do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        } while (bVar16);" (do "do") (compound_statement "{\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          bVar17 = *pbVar13 < *pbVar12;\n          bVar16 = *pbVar13 == *pbVar12;\n          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar13 < *pbVar12;" (assignment_expression "bVar17 = *pbVar13 < *pbVar12" (identifier "bVar17") (= "=") (binary_expression "*pbVar13 < *pbVar12" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar12;" (assignment_expression "bVar16 = *pbVar13 == *pbVar12" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar12" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar19 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;" (if "if") (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" (( "(") (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (!= "!=") (identifier "bVar17")) () ")")) (goto_statement "goto LAB_00027960;" (goto "goto") (statement_identifier "LAB_00027960") (; ";"))) (expression_statement "iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));" (assignment_expression "iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" (identifier "iVar5") (= "=") (call_expression "FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" (identifier "FUN_0001e850") (argument_list "(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" (( "(") (identifier "param_4") (, ",") (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")))) (; ";")) (} "}")))) (goto_statement "goto joined_r0x00027bec;" (goto "goto") (statement_identifier "joined_r0x00027bec") (; ";")) (} "}"))) (if_statement "if (bVar2 < 0x65) {\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }" (if "if") (parenthesized_expression "(bVar2 < 0x65)" (( "(") (binary_expression "bVar2 < 0x65" (identifier "bVar2") (< "<") (number_literal "0x65")) () ")")) (compound_statement "{\n      if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }\n      goto LAB_00027960;\n    }" ({ "{") (if_statement "if (bVar2 != 5) {\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }" (if "if") (parenthesized_expression "(bVar2 != 5)" (( "(") (binary_expression "bVar2 != 5" (identifier "bVar2") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n        if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }\n      }" ({ "{") (if_statement "if (bVar2 < 6) {\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }\n        else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" (if "if") (parenthesized_expression "(bVar2 < 6)" (( "(") (binary_expression "bVar2 < 6" (identifier "bVar2") (< "<") (number_literal "6")) () ")")) (compound_statement "{\n          if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }\nLAB_000278e8:\n          uVar15 = (uint)local_6a;\n          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }\n          local_bc = 0;\n          if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }\n          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);\n          local_c0 = pbVar13;\n          local_b8 = uVar15;\n          bVar1 = bVar2;\n        }" ({ "{") (if_statement "if (bVar2 != 2) {\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }" (if "if") (parenthesized_expression "(bVar2 != 2)" (( "(") (binary_expression "bVar2 != 2" (identifier "bVar2") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n            if (bVar2 != 3) goto LAB_00027b18;\n            if (local_6a == 0) goto LAB_00027960;\n          }" ({ "{") (if_statement "if (bVar2 != 3) goto LAB_00027b18;" (if "if") (parenthesized_expression "(bVar2 != 3)" (( "(") (binary_expression "bVar2 != 3" (identifier "bVar2") (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_00027b18;" (goto "goto") (statement_identifier "LAB_00027b18") (; ";"))) (if_statement "if (local_6a == 0) goto LAB_00027960;" (if "if") (parenthesized_expression "(local_6a == 0)" (( "(") (binary_expression "local_6a == 0" (identifier "local_6a") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00027960;" (goto "goto") (statement_identifier "LAB_00027960") (; ";"))) (} "}"))) (labeled_statement "LAB_000278e8:\n          uVar15 = (uint)local_6a;" (statement_identifier "LAB_000278e8") (: ":") (expression_statement "uVar15 = (uint)local_6a;" (assignment_expression "uVar15 = (uint)local_6a" (identifier "uVar15") (= "=") (cast_expression "(uint)local_6a" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_6a"))) (; ";"))) (if_statement "if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }" (if "if") (parenthesized_expression "((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f))" (( "(") (binary_expression "(*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=\n              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)" (parenthesized_expression "(*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15)" (( "(") (binary_expression "*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15" (pointer_expression "*(uint *)(*(int *)(param_1 + 0x9c) + 0x28)" (* "*") (cast_expression "(uint *)(*(int *)(param_1 + 0x9c) + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x28)" (( "(") (binary_expression "*(int *)(param_1 + 0x9c) + 0x28" (pointer_expression "*(int *)(param_1 + 0x9c)" (* "*") (cast_expression "(int *)(param_1 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")")))) (+ "+") (number_literal "0x28")) () ")")))) (& "&") (identifier "uVar15")) () ")")) (!= "!=") (binary_expression "2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)" (number_literal "2") (<< "<<") (parenthesized_expression "((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)" (( "(") (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f" (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x24)" (( "(") (binary_expression "*(int *)(param_1 + 0x9c) + 0x24" (pointer_expression "*(int *)(param_1 + 0x9c)" (* "*") (cast_expression "(int *)(param_1 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")")))) (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x1f")) () ")")))) () ")")) (compound_statement "{\n            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);\n            if (iVar5 == 0) {\n              return 0;\n            }\n            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n            goto joined_r0x00027bec;\n          }" ({ "{") (expression_statement "iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);" (assignment_expression "iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4)" (identifier "iVar5") (= "=") (call_expression "FUN_00026ea0(local_94,uVar15,local_d4,1,param_4)" (identifier "FUN_00026ea0") (argument_list "(local_94,uVar15,local_d4,1,param_4)" (( "(") (identifier "local_94") (, ",") (identifier "uVar15") (, ",") (identifier "local_d4") (, ",") (number_literal "1") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);" (assignment_expression "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4)" (identifier "iVar5") (= "=") (call_expression "FUN_00026cf0(local_68,param_4,iVar5,local_c4)" (identifier "FUN_00026cf0") (argument_list "(local_68,param_4,iVar5,local_c4)" (( "(") (identifier "local_68") (, ",") (identifier "param_4") (, ",") (identifier "iVar5") (, ",") (identifier "local_c4") () ")")))) (; ";")) (goto_statement "goto joined_r0x00027bec;" (goto "goto") (statement_identifier "joined_r0x00027bec") (; ";")) (} "}"))) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_67 != 0) {\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }" (if "if") (parenthesized_expression "(local_67 != 0)" (( "(") (binary_expression "local_67 != 0" (identifier "local_67") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n          }" ({ "{") (expression_statement "local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);" (assignment_expression "local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (identifier "local_bc") (= "=") (binary_expression "local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (binary_expression "local_8c + *(int *)(iVar5 + 8)" (identifier "local_8c") (+ "+") (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (} "}"))) (expression_statement "local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);" (assignment_expression "local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5)" (identifier "local_b0") (= "=") (call_expression "(**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5)" (parenthesized_expression "(**(code **)(*(int *)(param_1 + 4) + 0x124))" (( "(") (pointer_expression "**(code **)(*(int *)(param_1 + 4) + 0x124)" (* "*") (pointer_expression "*(code **)(*(int *)(param_1 + 4) + 0x124)" (* "*") (cast_expression "(code **)(*(int *)(param_1 + 4) + 0x124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0x124)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0x124" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x124")) () ")"))))) () ")")) (argument_list "(param_1,iVar5)" (( "(") (identifier "param_1") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "local_c0 = pbVar13;" (assignment_expression "local_c0 = pbVar13" (identifier "local_c0") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "local_b8 = uVar15;" (assignment_expression "local_b8 = uVar15" (identifier "local_b8") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "bVar1 = bVar2;" (assignment_expression "bVar1 = bVar2" (identifier "bVar1") (= "=") (identifier "bVar2")) (; ";")) (} "}")) (else_clause "else if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" (else "else") (if_statement "if ((bVar2 != 7) && (bVar2 != 0xe)) {\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" (if "if") (parenthesized_expression "((bVar2 != 7) && (bVar2 != 0xe))" (( "(") (binary_expression "(bVar2 != 7) && (bVar2 != 0xe)" (parenthesized_expression "(bVar2 != 7)" (( "(") (binary_expression "bVar2 != 7" (identifier "bVar2") (!= "!=") (number_literal "7")) () ")")) (&& "&&") (parenthesized_expression "(bVar2 != 0xe)" (( "(") (binary_expression "bVar2 != 0xe" (identifier "bVar2") (!= "!=") (number_literal "0xe")) () ")"))) () ")")) (compound_statement "{\nLAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);\n          if (iVar5 == 0) {\n            return 0;\n          }\n          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);\n          goto joined_r0x00027bec;\n        }" ({ "{") (labeled_statement "LAB_00027b18:\n          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);" (statement_identifier "LAB_00027b18") (: ":") (expression_statement "iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);" (assignment_expression "iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4)" (identifier "iVar5") (= "=") (call_expression "FUN_00026ea0(local_94,local_6a,local_d4,1,param_4)" (identifier "FUN_00026ea0") (argument_list "(local_94,local_6a,local_d4,1,param_4)" (( "(") (identifier "local_94") (, ",") (identifier "local_6a") (, ",") (identifier "local_d4") (, ",") (number_literal "1") (, ",") (identifier "param_4") () ")")))) (; ";"))) (if_statement "if (iVar5 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);" (assignment_expression "iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4)" (identifier "iVar5") (= "=") (call_expression "FUN_00026cf0(local_68,param_4,iVar5,local_c4)" (identifier "FUN_00026cf0") (argument_list "(local_68,param_4,iVar5,local_c4)" (( "(") (identifier "local_68") (, ",") (identifier "param_4") (, ",") (identifier "iVar5") (, ",") (identifier "local_c4") () ")")))) (; ";")) (goto_statement "goto joined_r0x00027bec;" (goto "goto") (statement_identifier "joined_r0x00027bec") (; ";")) (} "}"))))) (} "}"))) (goto_statement "goto LAB_00027960;" (goto "goto") (statement_identifier "LAB_00027960") (; ";")) (} "}"))) (if_statement "if (0x6a < bVar2) {\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }" (if "if") (parenthesized_expression "(0x6a < bVar2)" (( "(") (binary_expression "0x6a < bVar2" (number_literal "0x6a") (< "<") (identifier "bVar2")) () ")")) (compound_statement "{\n      if (bVar2 == 0x7f) goto LAB_000278e8;\n      if (bVar2 != 0xff) goto LAB_00027b18;\n      goto LAB_00027960;\n    }" ({ "{") (if_statement "if (bVar2 == 0x7f) goto LAB_000278e8;" (if "if") (parenthesized_expression "(bVar2 == 0x7f)" (( "(") (binary_expression "bVar2 == 0x7f" (identifier "bVar2") (== "==") (number_literal "0x7f")) () ")")) (goto_statement "goto LAB_000278e8;" (goto "goto") (statement_identifier "LAB_000278e8") (; ";"))) (if_statement "if (bVar2 != 0xff) goto LAB_00027b18;" (if "if") (parenthesized_expression "(bVar2 != 0xff)" (( "(") (binary_expression "bVar2 != 0xff" (identifier "bVar2") (!= "!=") (number_literal "0xff")) () ")")) (goto_statement "goto LAB_00027b18;" (goto "goto") (statement_identifier "LAB_00027b18") (; ";"))) (goto_statement "goto LAB_00027960;" (goto "goto") (statement_identifier "LAB_00027960") (; ";")) (} "}"))) (if_statement "if (0x67 < bVar2) goto LAB_00027960;" (if "if") (parenthesized_expression "(0x67 < bVar2)" (( "(") (binary_expression "0x67 < bVar2" (number_literal "0x67") (< "<") (identifier "bVar2")) () ")")) (goto_statement "goto LAB_00027960;" (goto "goto") (statement_identifier "LAB_00027960") (; ";"))) (expression_statement "bVar16 = bVar2 < 0x65;" (assignment_expression "bVar16 = bVar2 < 0x65" (identifier "bVar16") (= "=") (binary_expression "bVar2 < 0x65" (identifier "bVar2") (< "<") (number_literal "0x65"))) (; ";")) (expression_statement "bVar18 = bVar2 == 0x65;" (assignment_expression "bVar18 = bVar2 == 0x65" (identifier "bVar18") (= "=") (binary_expression "bVar2 == 0x65" (identifier "bVar2") (== "==") (number_literal "0x65"))) (; ";")) (if_statement "if (!bVar18) {\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }" (if "if") (parenthesized_expression "(!bVar18)" (( "(") (unary_expression "!bVar18" (! "!") (identifier "bVar18")) () ")")) (compound_statement "{\n      if (bVar2 == 0x67) goto LAB_00027bcc;\n      goto LAB_00027b18;\n    }" ({ "{") (if_statement "if (bVar2 == 0x67) goto LAB_00027bcc;" (if "if") (parenthesized_expression "(bVar2 == 0x67)" (( "(") (binary_expression "bVar2 == 0x67" (identifier "bVar2") (== "==") (number_literal "0x67")) () ")")) (goto_statement "goto LAB_00027bcc;" (goto "goto") (statement_identifier "LAB_00027bcc") (; ";"))) (goto_statement "goto LAB_00027b18;" (goto "goto") (statement_identifier "LAB_00027b18") (; ";")) (} "}"))) (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" (identifier "iVar10") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" (identifier "pbVar12") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar14 = &DAT_00033d3e;" (assignment_expression "pbVar14 = &DAT_00033d3e" (identifier "pbVar14") (= "=") (pointer_expression "&DAT_00033d3e" (& "&") (identifier "DAT_00033d3e"))) (; ";")) (do_statement "do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    } while (bVar18);" (do "do") (compound_statement "{\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar16 = *pbVar12 < *pbVar14;\n      bVar18 = *pbVar12 == *pbVar14;\n      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar12 < *pbVar14;" (assignment_expression "bVar16 = *pbVar12 < *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar18 = *pbVar12 == *pbVar14;" (assignment_expression "bVar18 = *pbVar12 == *pbVar14" (identifier "bVar18") (= "=") (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" (identifier "bVar16") (= "=") (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" (( "(") (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (!bVar16) {\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (compound_statement "{\n      iVar10 = 4;\n      pbVar12 = &DAT_00033d42;\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }\n      goto LAB_00027960;\n    }" ({ "{") (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" (identifier "iVar10") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar12 = &DAT_00033d42;" (assignment_expression "pbVar12 = &DAT_00033d42" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_00033d42" (& "&") (identifier "DAT_00033d42"))) (; ";")) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      } while (bVar16);" (do "do") (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar17 = *pbVar13 < *pbVar12;\n        bVar16 = *pbVar13 == *pbVar12;\n        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar10 == 0) break;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar13 < *pbVar12;" (assignment_expression "bVar17 = *pbVar13 < *pbVar12" (identifier "bVar17") (= "=") (binary_expression "*pbVar13 < *pbVar12" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar12;" (assignment_expression "bVar16 = *pbVar13 == *pbVar12" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar12" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar19 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar19 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar19 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar17 && !bVar16) == bVar17) {\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }" (if "if") (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" (( "(") (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar17")) () ")")) (compound_statement "{\n        if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }\n        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n        if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }\n        iVar5 = FUN_0001e6d0(param_4,uVar15);\n        if (iVar5 == 0) {\n          return 0;\n        }\n        local_c4 = 0;\n        local_bc = 0;\n      }" ({ "{") (if_statement "if (local_c4 == 0) {\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }" (if "if") (parenthesized_expression "(local_c4 == 0)" (( "(") (binary_expression "local_c4 == 0" (identifier "local_c4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar8 = "%ld: unexpected .ef\n";\n          goto LAB_00027ebd;\n        }" ({ "{") (expression_statement "pcVar8 = "%ld: unexpected .ef\n";" (assignment_expression "pcVar8 = "%ld: unexpected .ef\n"" (identifier "pcVar8") (= "=") (string_literal ""%ld: unexpected .ef\n"" (" """) (string_content "%ld: unexpected .ef") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_00027ebd;" (goto "goto") (statement_identifier "LAB_00027ebd") (; ";")) (} "}"))) (expression_statement "uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);" (assignment_expression "uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (identifier "uVar15") (= "=") (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (if_statement "if (uVar15 < local_bc) {\n          uVar15 = local_bc;\n        }" (if "if") (parenthesized_expression "(uVar15 < local_bc)" (( "(") (binary_expression "uVar15 < local_bc" (identifier "uVar15") (< "<") (identifier "local_bc")) () ")")) (compound_statement "{\n          uVar15 = local_bc;\n        }" ({ "{") (expression_statement "uVar15 = local_bc;" (assignment_expression "uVar15 = local_bc" (identifier "uVar15") (= "=") (identifier "local_bc")) (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_0001e6d0(param_4,uVar15);" (assignment_expression "iVar5 = FUN_0001e6d0(param_4,uVar15)" (identifier "iVar5") (= "=") (call_expression "FUN_0001e6d0(param_4,uVar15)" (identifier "FUN_0001e6d0") (argument_list "(param_4,uVar15)" (( "(") (identifier "param_4") (, ",") (identifier "uVar15") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" (identifier "local_c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto LAB_00027960;" (goto "goto") (statement_identifier "LAB_00027960") (; ";")) (} "}"))) (if_statement "if (local_c0 == (byte *)0x0) {\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }" (if "if") (parenthesized_expression "(local_c0 == (byte *)0x0)" (( "(") (binary_expression "local_c0 == (byte *)0x0" (identifier "local_c0") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar8 = "%ld: .bf without preceding function";\nLAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);\n      FUN_0002b6d0(uVar9,local_94);\n      return 0;\n    }" ({ "{") (expression_statement "pcVar8 = "%ld: .bf without preceding function";" (assignment_expression "pcVar8 = "%ld: .bf without preceding function"" (identifier "pcVar8") (= "=") (string_literal ""%ld: .bf without preceding function"" (" """) (string_content "%ld: .bf without preceding function") (" """))) (; ";")) (labeled_statement "LAB_00027ebd:\n      uVar9 = dcgettext(0,pcVar8,5);" (statement_identifier "LAB_00027ebd") (: ":") (expression_statement "uVar9 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar8,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,pcVar8,5)" (identifier "dcgettext") (argument_list "(0,pcVar8,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar8") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002b6d0(uVar9,local_94);" (call_expression "FUN_0002b6d0(uVar9,local_94)" (identifier "FUN_0002b6d0") (argument_list "(uVar9,local_94)" (( "(") (identifier "uVar9") (, ",") (identifier "local_94") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);" (assignment_expression "uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f)" (identifier "uVar15") (= "=") (binary_expression "(int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f)" (cast_expression "(int)local_b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b8")) (>> ">>") (parenthesized_expression "((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f)" (( "(") (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f" (binary_expression "(byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x2c)" (( "(") (binary_expression "*(int *)(param_1 + 0x9c) + 0x2c" (pointer_expression "*(int *)(param_1 + 0x9c)" (* "*") (cast_expression "(int *)(param_1 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4);" (assignment_expression "iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4)" (identifier "iVar10") (= "=") (call_expression "FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4)" (identifier "FUN_00026ea0") (argument_list "(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15,local_d4,0,param_4)" (( "(") (identifier "local_94") (, ",") (binary_expression "(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)\n                                   ^ uVar15" (binary_expression "(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)" (parenthesized_expression "(local_b8 ^ uVar15)" (( "(") (binary_expression "local_b8 ^ uVar15" (identifier "local_b8") (^ "^") (identifier "uVar15")) () ")")) (& "&") (pointer_expression "*(uint *)(*(int *)(param_1 + 0x9c) + 0x20)" (* "*") (cast_expression "(uint *)(*(int *)(param_1 + 0x9c) + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x9c) + 0x20)" (( "(") (binary_expression "*(int *)(param_1 + 0x9c) + 0x20" (pointer_expression "*(int *)(param_1 + 0x9c)" (* "*") (cast_expression "(int *)(param_1 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x9c)" (( "(") (binary_expression "param_1 + 0x9c" (identifier "param_1") (+ "+") (number_literal "0x9c")) () ")")))) (+ "+") (number_literal "0x20")) () ")"))))) (^ "^") (identifier "uVar15")) (, ",") (identifier "local_d4") (, ",") (number_literal "0") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));" (assignment_expression "iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" (identifier "iVar10") (= "=") (call_expression "FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" (identifier "FUN_0001e4c0") (argument_list "(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,\n                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c))" (( "(") (identifier "param_4") (, ",") (identifier "local_c0") (, ",") (identifier "iVar10") (, ",") (binary_expression "bVar1 == 2 || bVar1 == 0x7f" (binary_expression "bVar1 == 2" (identifier "bVar1") (== "==") (number_literal "2")) (|| "||") (binary_expression "bVar1 == 0x7f" (identifier "bVar1") (== "==") (number_literal "0x7f"))) (, ",") (binary_expression "*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (local_b0 != 0) {\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }" (if "if") (parenthesized_expression "(local_b0 != 0)" (( "(") (binary_expression "local_b0 != 0" (identifier "local_b0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar10 = 0;\n      if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }\n      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);\n      piVar11 = (int *)(local_b0 + 8);\n      iVar6 = *(int *)(local_b0 + 8);\n      while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }\n      local_b8 = 0;\n      local_c4 = 1;\n      local_b0 = 0;\n      local_c0 = (byte *)0x0;\n      bVar1 = 0;\n      goto LAB_00027960;\n    }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_67 != 0) {\n        iVar10 = (local_8c & 0xffff) - 1;\n      }" (if "if") (parenthesized_expression "(local_67 != 0)" (( "(") (binary_expression "local_67 != 0" (identifier "local_67") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar10 = (local_8c & 0xffff) - 1;\n      }" ({ "{") (expression_statement "iVar10 = (local_8c & 0xffff) - 1;" (assignment_expression "iVar10 = (local_8c & 0xffff) - 1" (identifier "iVar10") (= "=") (binary_expression "(local_8c & 0xffff) - 1" (parenthesized_expression "(local_8c & 0xffff)" (( "(") (binary_expression "local_8c & 0xffff" (identifier "local_8c") (& "&") (number_literal "0xffff")) () ")")) (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);" (assignment_expression "iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar5 + 0x10) + 0x1c" (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "piVar11 = (int *)(local_b0 + 8);" (assignment_expression "piVar11 = (int *)(local_b0 + 8)" (identifier "piVar11") (= "=") (cast_expression "(int *)(local_b0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_b0 + 8)" (( "(") (binary_expression "local_b0 + 8" (identifier "local_b0") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "iVar6 = *(int *)(local_b0 + 8);" (assignment_expression "iVar6 = *(int *)(local_b0 + 8)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(local_b0 + 8)" (* "*") (cast_expression "(int *)(local_b0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_b0 + 8)" (( "(") (binary_expression "local_b0 + 8" (identifier "local_b0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (while_statement "while (iVar6 != 0) {\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }" (while "while") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);\n        if (iVar6 == 0) {\n          return 0;\n        }\n        piVar11 = piVar11 + 2;\n        iVar6 = *piVar11;\n      }" ({ "{") (expression_statement "iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);" (assignment_expression "iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5)" (identifier "iVar6") (= "=") (call_expression "FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5)" (identifier "FUN_0001e8e0") (argument_list "(param_4,iVar6 + iVar10,piVar11[1] + iVar5)" (( "(") (identifier "param_4") (, ",") (binary_expression "iVar6 + iVar10" (identifier "iVar6") (+ "+") (identifier "iVar10")) (, ",") (binary_expression "piVar11[1] + iVar5" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (+ "+") (identifier "iVar5")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "piVar11 = piVar11 + 2;" (assignment_expression "piVar11 = piVar11 + 2" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 2" (identifier "piVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar6 = *piVar11;" (assignment_expression "iVar6 = *piVar11" (identifier "iVar6") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (} "}"))) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c4 = 1;" (assignment_expression "local_c4 = 1" (identifier "local_c4") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_b0 = 0;" (assignment_expression "local_b0 = 0" (identifier "local_b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c0 = (byte *)0x0;" (assignment_expression "local_c0 = (byte *)0x0" (identifier "local_c0") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" (identifier "bVar1") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00027960;" (goto "goto") (statement_identifier "LAB_00027960") (; ";")) (} "}"))) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" (identifier "bVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c0 = (byte *)0x0;" (assignment_expression "local_c0 = (byte *)0x0" (identifier "local_c0") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_c4 = 1;" (assignment_expression "local_c4 = 1" (identifier "local_c4") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_94 = iVar4;" (assignment_expression "local_94 = iVar4" (identifier "local_94") (= "=") (identifier "iVar4")) (; ";")) (if_statement "if (param_3 <= local_98) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(param_3 <= local_98)" (( "(") (binary_expression "param_3 <= local_98" (identifier "param_3") (<= "<=") (identifier "local_98")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Unknown calling convention */

type_1 function_1(type_2 *abfd,type_3 **syms,long var_2,void *dhandle)

{
  type_4 var_16;
  type_5 *types_00;
  type_6 *pdVar2;
  type_7 var_31;
  type_7 var_15;
  type_8 *var_1;
  int var_4;
  type_8 var_24;
  type_1 var_14;
  int var_10;
  type_9 uVar10;
  char *pcVar11;
  type_10 *var_35;
  type_8 pdVar13;
  type_11 var_22;
  type_7 *var_17;
  bool var_18;
  bool var_20;
  bool bVar18;
  type_7 bVar19;
  type_3 *var_11;
  type_3 *paVar20;
  type_12 *local_d4;
  type_3 *var_12;
  type_8 var_26;
  type_8 var_29;
  type_11 var_27;
  type_11 var_30;
  type_10 *var_33;
  type_13 symbols;
  type_12 auxent;
  type_14 syment;
  type_5 types;
  type_9 local_1c [2];
  type_11 uStack_14;
  
  bVar19 = 0;
  uStack_14 = 0x27809;
  symbols.symno = 0;
  symbols.coff_symno = 0;
  symbols.syms = syms;
  types.slots = (type_15 *)0x0;
  symbols.var_2 = var_2;
  var_1 = types.basic;
  do {
    *var_1 = (type_8)0x0;
    var_1 = var_1 + 1;
  } while ((type_8 *)local_1c != var_1);
  if (var_2 < 1) {
    return 1;
  }
  var_26 = (type_8)0x0;
  var_33 = (type_10 *)0x0;
  var_27 = 0;
  var_30 = 0;
  var_31 = 0;
  var_29 = (type_8)0x0;
  var_12 = (type_3 *)0xffffffff;
LAB_00027971:
  do {
    types_00 = (type_5 *)syms[symbols.symno];
    var_4 = var_3(abfd,types_00,&syment);
    if (var_4 == 0) {
      uVar10 = var_5();
      uVar10 = var_6(uVar10);
      pcVar11 = "bfd_coff_get_syment failed: %s";
LAB_00027e3b:
      pcVar11 = (char *)var_7(0,pcVar11,5);
      var_8(pcVar11,uVar10);
      return 0;
    }
    var_24 = types_00->basic[0];
    local_d4 = (type_12 *)0x0;
    symbols.symno = symbols.symno + 1;
    var_4 = symbols.coff_symno + 1 + (type_11)syment.n_numaux;
    var_11 = (type_3 *)symbols.coff_symno;
    if ((syment.n_numaux != '\0') &&
       (symbols.coff_symno = var_4, var_10 = var_9(abfd,types_00,0,&auxent),
       local_d4 = &auxent, var_4 = symbols.coff_symno, var_10 == 0)) {
      uVar10 = var_5();
      uVar10 = var_6(uVar10);
      pcVar11 = "bfd_coff_get_auxent failed: %s";
      goto LAB_00027e3b;
    }
    symbols.coff_symno = var_4;
    var_15 = syment.n_sclass;
    if (var_11 == var_12) {
      if (syment.n_sclass != 'g') {
        var_14 = var_13(dhandle,"*globals*");
        var_15 = syment.n_sclass;
        if (var_14 == 0) {
          return 0;
        }
        goto joined_r0x00027c50;
      }
LAB_00027bcc:
      var_12 = (type_3 *)syment.n_value;
      var_4 = var_13(dhandle,(char *)var_24);
joined_r0x00027bec:
      if (var_4 == 0) {
        return 0;
      }
LAB_00027960:
      if (var_2 <= symbols.symno) {
        return 1;
      }
      goto LAB_00027971;
    }
joined_r0x00027c50:
    bVar18 = var_15 == 100;
    var_18 = var_15 < 100;
    syment.n_sclass = var_15;
    if (bVar18) {
      var_4 = 4;
      pdVar13 = var_24;
      var_17 = &DAT_00033d5b;
      do {
        if (var_4 == 0) break;
        var_4 = var_4 + -1;
        var_16 = (type_4)pdVar13->kind;
        var_18 = (type_7)var_16 < *var_17;
        bVar18 = var_16 == *var_17;
        pdVar13 = (type_8)((int)pdVar13 + (type_11)bVar19 * -2 + 1);
        var_17 = var_17 + (type_11)bVar19 * -2 + 1;
      } while (bVar18);
      var_20 = false;
      var_18 = (!var_18 && !bVar18) == var_18;
      if (var_18) {
        var_4 = var_19(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +
                                          (int)&types_00->basic[1]->kind);
      }
      else {
        var_4 = 4;
        var_17 = &DAT_00033d5f;
        do {
          if (var_4 == 0) break;
          var_4 = var_4 + -1;
          var_16 = (type_4)var_24->kind;
          var_20 = (type_7)var_16 < *var_17;
          var_18 = var_16 == *var_17;
          var_24 = (type_8)((int)var_24 + (type_11)bVar19 * -2 + 1);
          var_17 = var_17 + (type_11)bVar19 * -2 + 1;
        } while (var_18);
        if ((!var_20 && !var_18) != var_20) goto LAB_00027960;
        var_4 = var_21(dhandle,(int)&(types_00->basic[3][1].u.kindirect)->slot +
                                        (int)&types_00->basic[1]->kind);
      }
      goto joined_r0x00027bec;
    }
    if (var_15 < 0x65) {
      if (var_15 != 5) {
        if (var_15 < 6) {
          if (var_15 != 2) {
            if (var_15 != 3) goto LAB_00027b18;
            if (syment.n_type == 0) goto LAB_00027960;
          }
LAB_000278e8:
          var_22 = (type_11)syment.n_type;
          if ((((abfd->tdata).coff_obj_data)->local_n_tmask & var_22) !=
              2 << ((type_7)((abfd->tdata).coff_obj_data)->local_n_btshft & 0x1f)) {
            paVar20 = var_11;
            var_24 = var_23(abfd,&symbols,&types,(long)var_11,var_22,local_d4,1,dhandle);
            if (var_24 == (type_8)0x0) {
              return 0;
            }
            var_4 = var_25((type_2 *)&types,types_00,var_11,(type_11)syment.n_sclass,
                                      (type_14 *)dhandle,var_24,var_26,
                                      (type_1)paVar20);
            goto joined_r0x00027bec;
          }
          var_27 = 0;
          if (syment.n_numaux != '\0') {
            var_27 = (int)&(types_00->basic[3][1].u.kindirect)->slot +
                       (int)&types_00->basic[1]->kind + auxent.x_csect.x_parmhash;
          }
          var_33 = (*abfd->xvec->_get_lineno)(abfd,(type_16 *)types_00);
          var_29 = var_24;
          var_30 = var_22;
          var_31 = var_15;
        }
        else if ((var_15 != 7) && (var_15 != 0xe)) {
LAB_00027b18:
          paVar20 = var_11;
          var_24 = var_23(abfd,&symbols,&types,(long)var_11,(type_11)syment.n_type,local_d4,1,
                                   dhandle);
          if (var_24 == (type_8)0x0) {
            return 0;
          }
          var_4 = var_25((type_2 *)&types,types_00,var_11,(type_11)syment.n_sclass,
                                    (type_14 *)dhandle,var_24,var_26,(type_1)paVar20)
          ;
          goto joined_r0x00027bec;
        }
      }
      goto LAB_00027960;
    }
    if (0x6a < var_15) {
      if (var_15 == 0x7f) goto LAB_000278e8;
      if (var_15 != 0xff) goto LAB_00027b18;
      goto LAB_00027960;
    }
    if (0x67 < var_15) goto LAB_00027960;
    var_18 = var_15 < 0x65;
    bVar18 = var_15 == 0x65;
    if (!bVar18) {
      if (var_15 == 0x67) goto LAB_00027bcc;
      goto LAB_00027b18;
    }
    var_4 = 4;
    pdVar13 = var_24;
    var_17 = &DAT_00033d3e;
    do {
      if (var_4 == 0) break;
      var_4 = var_4 + -1;
      var_16 = (type_4)pdVar13->kind;
      var_18 = (type_7)var_16 < *var_17;
      bVar18 = var_16 == *var_17;
      pdVar13 = (type_8)((int)pdVar13 + (type_11)bVar19 * -2 + 1);
      var_17 = var_17 + (type_11)bVar19 * -2 + 1;
    } while (bVar18);
    var_20 = false;
    var_18 = (!var_18 && !bVar18) == var_18;
    if (!var_18) {
      var_4 = 4;
      var_17 = &DAT_00033d42;
      do {
        if (var_4 == 0) break;
        var_4 = var_4 + -1;
        var_16 = (type_4)var_24->kind;
        var_20 = (type_7)var_16 < *var_17;
        var_18 = var_16 == *var_17;
        var_24 = (type_8)((int)var_24 + (type_11)bVar19 * -2 + 1);
        var_17 = var_17 + (type_11)bVar19 * -2 + 1;
      } while (var_18);
      if ((!var_20 && !var_18) == var_20) {
        if (var_26 == (type_8)0x0) {
          pcVar11 = "%ld: unexpected .ef\n";
          goto LAB_00027ebd;
        }
        var_22 = (int)&(types_00->basic[3][1].u.kindirect)->slot + (int)&types_00->basic[1]->kind;
        if (var_22 < var_27) {
          var_22 = var_27;
        }
        var_14 = var_28(dhandle,var_22);
        if (var_14 == 0) {
          return 0;
        }
        var_26 = (type_8)0x0;
        var_27 = 0;
      }
      goto LAB_00027960;
    }
    if (var_29 == (type_8)0x0) {
      pcVar11 = "%ld: .bf without preceding function";
LAB_00027ebd:
      pcVar11 = (char *)var_7(0,pcVar11,5);
      var_8(pcVar11,var_11);
      return 0;
    }
    var_22 = (int)var_30 >> ((type_7)((abfd->tdata).coff_obj_data)->local_n_tshift & 0x1f);
    var_24 = var_23(abfd,&symbols,&types,(long)var_11,
                             (var_30 ^ var_22) & ((abfd->tdata).coff_obj_data)->local_n_btmask ^
                             var_22,local_d4,0,dhandle);
    if (var_24 == (type_8)0x0) {
      return 0;
    }
    var_22 = 1;
    if (var_31 != 2) {
      var_22 = (type_11)(var_31 == 0x7f);
    }
    var_14 = var_32
                      (dhandle,(char *)var_29,var_24,var_22,
                       (int)&(types_00->basic[3][1].u.kindirect)->slot +
                       (int)&types_00->basic[1]->kind);
    if (var_14 == 0) {
      return 0;
    }
    if (var_33 != (type_10 *)0x0) {
      var_4 = 0;
      if (syment.n_numaux != '\0') {
        var_4 = (auxent.x_csect.x_parmhash & 0xffffU) - 1;
      }
      pdVar2 = types_00->basic[3][1].u.kindirect;
      var_35 = var_33 + 1;
      var_22 = var_33[1].line_number;
      while (var_22 != 0) {
        var_14 = var_34(dhandle,var_22 + var_4,(int)&pdVar2->slot + (int)(var_35->u).var_11)
        ;
        if (var_14 == 0) {
          return 0;
        }
        var_35 = var_35 + 1;
        var_22 = var_35->line_number;
      }
      var_30 = 0;
      var_26 = (type_8)0x1;
      var_33 = (type_10 *)0x0;
      var_29 = (type_8)0x0;
      var_31 = 0;
      goto LAB_00027960;
    }
    var_30 = 0;
    var_31 = 0;
    var_29 = (type_8)0x0;
    var_26 = (type_8)0x1;
    if (var_2 <= symbols.symno) {
      return 1;
    }
  } while( true );
}


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

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

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

{
  byte bVar1;
  byte bVar2;
  undefined4 *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  undefined4 uVar7;
  char *pcVar8;
  undefined4 uVar9;
  int iVar10;
  int *piVar11;
  byte *pbVar12;
  byte *pbVar13;
  byte *pbVar14;
  uint uVar15;
  bool bVar16;
  bool bVar17;
  bool bVar18;
  byte bVar19;
  undefined1 *local_d4;
  int local_d0;
  int local_c4;
  byte *local_c0;
  uint local_bc;
  uint local_b8;
  int local_b0;
  int local_98;
  int local_94;
  undefined1 local_90 [4];
  uint local_8c;
  undefined1 local_7c [8];
  int local_74;
  ushort local_6a;
  byte local_68;
  byte local_67;
  undefined4 local_64;
  undefined4 local_60 [17];
  undefined4 local_1c [2];
  undefined4 uStack_14;
  
  bVar19 = 0;
  uStack_14 = 0x27809;
  local_98 = 0;
  local_94 = 0;
  local_64 = 0;
  puVar3 = local_60;
  do {
    *puVar3 = 0;
    puVar3 = puVar3 + 1;
  } while (local_1c != puVar3);
  if (param_3 < 1) {
    return 1;
  }
  local_c4 = 0;
  local_b0 = 0;
  local_bc = 0;
  local_b8 = 0;
  bVar1 = 0;
  local_c0 = (byte *)0x0;
  local_d0 = -1;
LAB_00027971:
  do {
    iVar5 = *(int *)(param_2 + local_98 * 4);
    iVar4 = bfd_coff_get_syment(param_1,iVar5,local_7c);
    if (iVar4 == 0) {
      uVar9 = bfd_get_error();
      uVar9 = bfd_errmsg(uVar9);
      pcVar8 = "bfd_coff_get_syment failed: %s";
LAB_00027e3b:
      uVar7 = dcgettext(0,pcVar8,5);
      FUN_0002b6d0(uVar7,uVar9);
      return 0;
    }
    pbVar13 = *(byte **)(iVar5 + 4);
    local_d4 = (undefined1 *)0x0;
    local_98 = local_98 + 1;
    iVar4 = local_94 + 1 + (uint)local_67;
    if ((local_67 != 0) &&
       (iVar10 = bfd_coff_get_auxent(param_1,iVar5,0,local_90), local_d4 = local_90, iVar10 == 0)) {
      uVar9 = bfd_get_error();
      uVar9 = bfd_errmsg(uVar9);
      pcVar8 = "bfd_coff_get_auxent failed: %s";
      goto LAB_00027e3b;
    }
    bVar2 = local_68;
    if (local_94 == local_d0) {
      if (local_68 != 0x67) {
        iVar10 = FUN_0001e300(param_4,"*globals*");
        bVar2 = local_68;
        if (iVar10 == 0) {
          return 0;
        }
        goto joined_r0x00027c50;
      }
LAB_00027bcc:
      local_d0 = local_74;
      iVar5 = FUN_0001e300(param_4,pbVar13);
joined_r0x00027bec:
      if (iVar5 == 0) {
        return 0;
      }
LAB_00027960:
      local_94 = iVar4;
      if (param_3 <= local_98) {
        return 1;
      }
      goto LAB_00027971;
    }
joined_r0x00027c50:
    bVar18 = bVar2 == 100;
    bVar16 = bVar2 < 100;
    local_68 = bVar2;
    if (bVar18) {
      iVar10 = 4;
      pbVar12 = pbVar13;
      pbVar14 = &DAT_00033d5b;
      do {
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        bVar16 = *pbVar12 < *pbVar14;
        bVar18 = *pbVar12 == *pbVar14;
        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;
        pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
      } while (bVar18);
      bVar17 = false;
      bVar16 = (!bVar16 && !bVar18) == bVar16;
      if (bVar16) {
        iVar5 = FUN_0001e770(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));
      }
      else {
        iVar10 = 4;
        pbVar12 = &DAT_00033d5f;
        do {
          if (iVar10 == 0) break;
          iVar10 = iVar10 + -1;
          bVar17 = *pbVar13 < *pbVar12;
          bVar16 = *pbVar13 == *pbVar12;
          pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;
          pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;
        } while (bVar16);
        if ((!bVar17 && !bVar16) != bVar17) goto LAB_00027960;
        iVar5 = FUN_0001e850(param_4,*(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));
      }
      goto joined_r0x00027bec;
    }
    if (bVar2 < 0x65) {
      if (bVar2 != 5) {
        if (bVar2 < 6) {
          if (bVar2 != 2) {
            if (bVar2 != 3) goto LAB_00027b18;
            if (local_6a == 0) goto LAB_00027960;
          }
LAB_000278e8:
          uVar15 = (uint)local_6a;
          if ((*(uint *)(*(int *)(param_1 + 0x9c) + 0x28) & uVar15) !=
              2 << ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x24) & 0x1f)) {
            iVar5 = FUN_00026ea0(local_94,uVar15,local_d4,1,param_4);
            if (iVar5 == 0) {
              return 0;
            }
            iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);
            goto joined_r0x00027bec;
          }
          local_bc = 0;
          if (local_67 != 0) {
            local_bc = local_8c + *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);
          }
          local_b0 = (**(code **)(*(int *)(param_1 + 4) + 0x124))(param_1,iVar5);
          local_c0 = pbVar13;
          local_b8 = uVar15;
          bVar1 = bVar2;
        }
        else if ((bVar2 != 7) && (bVar2 != 0xe)) {
LAB_00027b18:
          iVar5 = FUN_00026ea0(local_94,local_6a,local_d4,1,param_4);
          if (iVar5 == 0) {
            return 0;
          }
          iVar5 = FUN_00026cf0(local_68,param_4,iVar5,local_c4);
          goto joined_r0x00027bec;
        }
      }
      goto LAB_00027960;
    }
    if (0x6a < bVar2) {
      if (bVar2 == 0x7f) goto LAB_000278e8;
      if (bVar2 != 0xff) goto LAB_00027b18;
      goto LAB_00027960;
    }
    if (0x67 < bVar2) goto LAB_00027960;
    bVar16 = bVar2 < 0x65;
    bVar18 = bVar2 == 0x65;
    if (!bVar18) {
      if (bVar2 == 0x67) goto LAB_00027bcc;
      goto LAB_00027b18;
    }
    iVar10 = 4;
    pbVar12 = pbVar13;
    pbVar14 = &DAT_00033d3e;
    do {
      if (iVar10 == 0) break;
      iVar10 = iVar10 + -1;
      bVar16 = *pbVar12 < *pbVar14;
      bVar18 = *pbVar12 == *pbVar14;
      pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;
      pbVar14 = pbVar14 + (uint)bVar19 * -2 + 1;
    } while (bVar18);
    bVar17 = false;
    bVar16 = (!bVar16 && !bVar18) == bVar16;
    if (!bVar16) {
      iVar10 = 4;
      pbVar12 = &DAT_00033d42;
      do {
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        bVar17 = *pbVar13 < *pbVar12;
        bVar16 = *pbVar13 == *pbVar12;
        pbVar13 = pbVar13 + (uint)bVar19 * -2 + 1;
        pbVar12 = pbVar12 + (uint)bVar19 * -2 + 1;
      } while (bVar16);
      if ((!bVar17 && !bVar16) == bVar17) {
        if (local_c4 == 0) {
          pcVar8 = "%ld: unexpected .ef\n";
          goto LAB_00027ebd;
        }
        uVar15 = *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);
        if (uVar15 < local_bc) {
          uVar15 = local_bc;
        }
        iVar5 = FUN_0001e6d0(param_4,uVar15);
        if (iVar5 == 0) {
          return 0;
        }
        local_c4 = 0;
        local_bc = 0;
      }
      goto LAB_00027960;
    }
    if (local_c0 == (byte *)0x0) {
      pcVar8 = "%ld: .bf without preceding function";
LAB_00027ebd:
      uVar9 = dcgettext(0,pcVar8,5);
      FUN_0002b6d0(uVar9,local_94);
      return 0;
    }
    uVar15 = (int)local_b8 >> ((byte)*(undefined4 *)(*(int *)(param_1 + 0x9c) + 0x2c) & 0x1f);
    iVar10 = FUN_00026ea0(local_94,(local_b8 ^ uVar15) & *(uint *)(*(int *)(param_1 + 0x9c) + 0x20)
                                   ^ uVar15,local_d4,0,param_4);
    if (iVar10 == 0) {
      return 0;
    }
    iVar10 = FUN_0001e4c0(param_4,local_c0,iVar10,bVar1 == 2 || bVar1 == 0x7f,
                          *(int *)(iVar5 + 8) + *(int *)(*(int *)(iVar5 + 0x10) + 0x1c));
    if (iVar10 == 0) {
      return 0;
    }
    if (local_b0 != 0) {
      iVar10 = 0;
      if (local_67 != 0) {
        iVar10 = (local_8c & 0xffff) - 1;
      }
      iVar5 = *(int *)(*(int *)(iVar5 + 0x10) + 0x1c);
      piVar11 = (int *)(local_b0 + 8);
      iVar6 = *(int *)(local_b0 + 8);
      while (iVar6 != 0) {
        iVar6 = FUN_0001e8e0(param_4,iVar6 + iVar10,piVar11[1] + iVar5);
        if (iVar6 == 0) {
          return 0;
        }
        piVar11 = piVar11 + 2;
        iVar6 = *piVar11;
      }
      local_b8 = 0;
      local_c4 = 1;
      local_b0 = 0;
      local_c0 = (byte *)0x0;
      bVar1 = 0;
      goto LAB_00027960;
    }
    local_b8 = 0;
    bVar1 = 0;
    local_c0 = (byte *)0x0;
    local_c4 = 1;
    local_94 = iVar4;
    if (param_3 <= local_98) {
      return 1;
    }
  } while( true );
}

