
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void emit_expr_with_reloc(expressionS *exp,uint nbytes,bfd_reloc_code_real_type reloc)

{
  short *psVar1;
  byte *pbVar2;
  char *pcVar3;
  expressionS *peVar4;
  char *pcVar5;
  undefined2 uVar6;
  int iVar7;
  segT paVar8;
  uint uVar9;
  segT *ppaVar10;
  segT *ppaVar11;
  int iVar12;
  ushort *puVar13;
  byte *pbVar14;
  char *pcVar15;
  ushort *puVar16;
  char *pcVar17;
  ushort uVar18;
  byte *pbVar19;
  uint uVar20;
  undefined1 uVar21;
  bool bVar22;
  undefined1 uVar23;
  bool bVar24;
  byte bVar25;
  undefined1 auStack_2c [8];
  segT *local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar25 = 0;
  uStack_14 = 0x2f3e9;
  if (need_pass_2 != 0) {
    return;
  }
  uVar21 = auStack_2c < (undefined1 *)0xc;
  uVar23 = &stack0x00000000 == (undefined1 *)0x38;
  frag_grow(nbytes);
  dot_value = frag_now_fix();
  iVar7 = 6;
  local_20 = &frag_now;
  dot_frag = frag_now;
  local_24 = &now_seg;
  pbVar2 = (byte *)now_seg->name;
  pbVar14 = pbVar2;
  pbVar19 = (byte *)".line";
  do {
    if (iVar7 == 0) break;
    iVar7 = iVar7 + -1;
    uVar21 = *pbVar14 < *pbVar19;
    uVar23 = *pbVar14 == *pbVar19;
    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;
    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;
  } while ((bool)uVar23);
  bVar22 = false;
  bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;
  if (bVar24) {
    if ((emit_expr_with_reloc::lexical_block_7::dwarf_line < 0) || (nbytes != 2)) {
      bVar22 = nbytes < 4;
      bVar24 = nbytes == 4;
      if (bVar24) {
        bVar22 = (byte)exp->field_0xc < 2;
        bVar24 = exp->field_0xc == 2;
        if (bVar24) {
          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;
          bVar22 = false;
          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;
          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;
        }
      }
      goto LAB_0002f490;
    }
    bVar22 = (byte)exp->field_0xc < 2;
    bVar24 = exp->field_0xc == 2;
    if (!bVar24) goto LAB_0002f490;
    bVar22 = false;
    bVar24 = (exp->X_add_number + 1U & 0xfffeffff) == 0;
    if (!bVar24) goto LAB_0002f490;
    local_20 = &frag_now;
    listing_source_line(emit_expr_with_reloc::lexical_block_7::dwarf_line);
    bVar22 = (undefined1 *)0xffffffef < &stack0xffffffc4;
    bVar24 = &stack0x00000000 == (undefined1 *)0x2c;
    pbVar2 = (byte *)(*local_24)->name;
  }
  else {
LAB_0002f490:
    emit_expr_with_reloc::lexical_block_7::dwarf_line = -1;
    local_20 = &frag_now;
  }
LAB_0002f49a:
  iVar7 = 7;
  pbVar14 = (byte *)".debug";
  do {
    if (iVar7 == 0) break;
    iVar7 = iVar7 + -1;
    bVar22 = *pbVar2 < *pbVar14;
    bVar24 = *pbVar2 == *pbVar14;
    pbVar2 = pbVar2 + (uint)bVar25 * -2 + 1;
    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;
  } while (bVar24);
  if ((!bVar22 && !bVar24) == bVar22) {
    if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 0) {
      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))
      goto LAB_0002f4d8;
      emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;
      dwarf_file_string = 0;
    }
    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 1) {
      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))
      goto LAB_0002f4d8;
      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;
      dwarf_file_string = 0;
    }
    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {
      if (nbytes != 4) goto LAB_0002f4d8;
      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;
      dwarf_file_string = 0;
    }
    else {
      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||
         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;
      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;
      dwarf_file_string = 1;
    }
  }
  else {
LAB_0002f4d8:
    emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;
    dwarf_file_string = 0;
  }
  iVar7 = check_eh_frame(exp,&nbytes);
  ppaVar10 = local_24;
  if (iVar7 != 0) {
    return;
  }
  bVar25 = exp->field_0xc;
  if (bVar25 == 7) {
    if (((exp->X_add_number == 0) &&
        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&
       (peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number)) {
      exp = symbol_get_value_expression(exp->X_add_symbol);
      ppaVar10 = local_24;
      iVar7 = exp->X_add_number;
      if (iVar7 < 1) goto LAB_0002fc48;
      uVar9 = 1;
      puVar13 = &generic_bignum;
      do {
        uVar18 = *puVar13;
        puVar16 = puVar13 + 1;
        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);
        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;
        puVar13 = puVar16;
      } while (&generic_bignum + iVar7 != puVar16);
      local_24 = (segT *)0xffffffff;
LAB_0002f544:
      paVar8 = *ppaVar10;
      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;
      bVar25 = 6;
    }
    else {
      paVar8 = *local_24;
      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {
LAB_0002f8c1:
        pcVar3 = (char *)dcgettext();
        as_bad(pcVar3);
        goto LAB_0002f8df;
      }
LAB_0002f7a0:
      local_24 = (segT *)0x0;
    }
LAB_0002f7a8:
    if ((paVar8->flags & 0x103) == 1) {
      pcVar3 = (char *)dcgettext();
      as_bad(pcVar3);
    }
    pcVar3 = frag_more(nbytes);
    if (reloc != BFD_RELOC_NONE) goto LAB_0002f730;
    if (bVar25 == 2) goto LAB_0002f604;
    if (bVar25 != 6) {
      emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE);
      return;
    }
    iVar7 = exp->X_add_number;
    uVar9 = iVar7 * 2;
    if (nbytes < (uint)(iVar7 * 2)) {
      uVar9 = nbytes >> 1;
      uVar20 = nbytes;
      if (uVar9 != 0) goto LAB_0002f669;
      if (nbytes == 1) {
        local_20 = (fragS **)&generic_bignum;
        uVar18 = (short)(generic_bignum << 8) >> 0xf;
        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;
        iVar12 = 0;
        do {
          iVar12 = iVar12 + 1;
          if (iVar7 <= iVar12) goto LAB_0002fb38;
        } while ((&generic_bignum)[iVar12] == uVar18);
        uVar20 = 1;
      }
      else {
LAB_0002fb1d:
        uVar9 = nbytes;
        if (iVar7 < 1) goto LAB_0002fb25;
      }
      goto LAB_0002fb98;
    }
  }
  else {
    if (bVar25 < 2) {
      pcVar3 = (char *)dcgettext();
      as_warn(pcVar3);
LAB_0002f5bf:
      exp->X_add_number = 0;
      if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {
LAB_0002f8df:
        abs_section_offset = abs_section_offset + nbytes;
        return;
      }
    }
    else {
      if (bVar25 == 6) {
        local_24 = (segT *)0x0;
        if (0 < exp->X_add_number) goto LAB_0002f544;
LAB_0002fc48:
        local_24 = ppaVar10;
        pcVar3 = (char *)dcgettext();
        as_bad(pcVar3);
        goto LAB_0002f5bf;
      }
      if (bVar25 == 5) {
        pcVar3 = (char *)dcgettext();
        as_warn(pcVar3);
        paVar8 = *local_24;
        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {
LAB_0002f8b6:
          if (exp->X_add_number == 0) goto LAB_0002f8df;
          goto LAB_0002f8c1;
        }
      }
      else {
        paVar8 = *local_24;
        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {
          if (bVar25 != 2) goto LAB_0002f8c1;
          goto LAB_0002f8b6;
        }
        if (bVar25 != 2) goto LAB_0002f7a0;
      }
      if (exp->X_add_number != 0) {
        local_24 = (segT *)0x0;
        bVar25 = 2;
        goto LAB_0002f7a8;
      }
    }
    pcVar3 = frag_more(nbytes);
    if (reloc != BFD_RELOC_NONE) {
LAB_0002f730:
      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);
      return;
    }
LAB_0002f604:
    ppaVar10 = (segT *)exp->X_add_number;
    if (nbytes < 5) {
      ppaVar11 = ppaVar10;
      if (nbytes != 4) {
        local_20 = (fragS **)(nbytes * 8);
        uVar9 = -1 << ((byte)local_20 & 0x1f);
        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);
        local_24 = ppaVar11;
        if ((((uint)ppaVar10 & uVar9) != 0) &&
           ((((uint)ppaVar10 & uVar9) != uVar9 ||
            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {
          pcVar5 = (char *)dcgettext();
          ppaVar11 = local_24;
          as_warn(pcVar5);
        }
      }
      number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);
      return;
    }
    if ((exp->field_0xd & 1) == 0) {
      uVar6 = 0xffff;
      local_24 = (segT *)0xffffffff;
    }
    else {
      uVar6 = 0;
      local_24 = (segT *)0x0;
    }
    if ((int)ppaVar10 < 0) {
      uVar9 = 4;
      iVar7 = 2;
    }
    else {
      uVar9 = 6;
      iVar7 = 3;
      DAT_00084884 = uVar6;
    }
    local_20 = (fragS **)&generic_bignum;
    _generic_bignum = ppaVar10;
    exp->field_0xc = 6;
    exp->X_add_number = iVar7;
    uVar20 = nbytes;
    if (uVar9 <= nbytes) goto LAB_0002f698;
    uVar9 = 2;
    uVar20 = 5;
LAB_0002f669:
    iVar12 = uVar9 - 1;
    psVar1 = (short *)(&generic_bignum + iVar12);
    local_20 = (fragS **)CONCAT22(8,*psVar1);
    do {
      iVar12 = iVar12 + 1;
      uVar9 = uVar20;
      if (iVar7 <= iVar12) goto LAB_0002f698;
    } while ((&generic_bignum)[iVar12] == *psVar1 >> 0xf);
LAB_0002fb98:
    pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",
                                uVar20);
    as_warn(pcVar5);
    uVar9 = nbytes;
  }
LAB_0002fb25:
  uVar20 = nbytes;
  if (nbytes == 1) {
LAB_0002fb38:
    local_20 = (fragS **)&generic_bignum;
    number_to_chars_littleendian(pcVar3,(uint)_generic_bignum & 0xffff,1);
    return;
  }
LAB_0002f698:
  ppaVar10 = local_24;
  if ((uVar20 & 1) == 0) {
    if (target_big_endian == 0) {
      if (1 < uVar9) {
        puVar13 = &generic_bignum;
        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;
        pcVar17 = pcVar3;
        do {
          uVar18 = *puVar13;
          puVar13 = puVar13 + 1;
          pcVar15 = pcVar17 + 2;
          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);
          nbytes = nbytes - 2;
          pcVar17 = pcVar15;
          pcVar3 = pcVar5;
          ppaVar10 = local_24;
          uVar20 = nbytes;
        } while (pcVar15 != pcVar5);
      }
      while (ppaVar11 = local_24, 1 < uVar20) {
        local_24 = ppaVar10;
        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);
        nbytes = nbytes - 2;
        pcVar3 = pcVar3 + 2;
        ppaVar10 = local_24;
        local_24 = ppaVar11;
        uVar20 = nbytes;
      }
    }
    else {
      while (uVar9 < uVar20) {
        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);
        nbytes = nbytes - 2;
        pcVar3 = pcVar3 + 2;
        uVar20 = nbytes;
      }
      puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));
      if (1 < uVar9) {
        pcVar5 = pcVar3;
        do {
          puVar13 = puVar13 + -1;
          pcVar17 = pcVar5 + 2;
          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);
          pcVar5 = pcVar17;
        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);
      }
    }
    return;
  }
                    /* WARNING: Subroutine does not return */
  as_abort("../../gas/read.c",0x1180,"emit_expr_with_reloc");
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_0002f3e0(char *param_1,char *param_2,char *param_3)

{
  short *psVar1;
  byte *pbVar2;
  char *pcVar3;
  undefined2 uVar4;
  int iVar5;
  int extraout_ECX;
  undefined4 *puVar6;
  uint uVar7;
  int *piVar8;
  int *piVar9;
  ushort *puVar10;
  byte *pbVar11;
  char *pcVar12;
  ushort *puVar13;
  char *pcVar14;
  ushort uVar15;
  byte *pbVar16;
  char *pcVar17;
  char *pcVar18;
  undefined1 uVar19;
  bool bVar20;
  undefined1 uVar21;
  bool bVar22;
  byte bVar23;
  char *local_3c;
  int *piStack_38;
  int *piStack_34;
  int iStack_30;
  undefined1 auStack_2c [8];
  int *local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar23 = 0;
  uStack_14 = 0x2f3e9;
  if (DAT_000846e8 != 0) {
    return;
  }
  uVar19 = auStack_2c < (undefined1 *)0xc;
  uVar21 = &stack0x00000000 == (undefined1 *)0x38;
  local_3c = param_2;
  FUN_00023780();
  DAT_00084a50 = FUN_00023b00();
  iVar5 = 6;
  local_20 = &DAT_0008482c;
  DAT_00084a5c = DAT_0008482c;
  local_24 = (int *)&DAT_000846fc;
  pbVar2 = (byte *)*DAT_000846fc;
  pbVar11 = pbVar2;
  pbVar16 = (byte *)".line";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    uVar19 = *pbVar11 < *pbVar16;
    uVar21 = *pbVar11 == *pbVar16;
    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;
  } while ((bool)uVar21);
  bVar20 = false;
  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;
  if (bVar22) {
    local_3c = DAT_0007b2a0;
    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {
      bVar20 = param_2 < (char *)0x4;
      bVar22 = param_2 == (char *)0x4;
      if (bVar22) {
        bVar20 = (byte)param_1[0xc] < 2;
        bVar22 = param_1[0xc] == 2;
        if (bVar22) {
          DAT_0007b2a0 = *(char **)(param_1 + 8);
          bVar20 = false;
          bVar22 = DAT_0007b2a0 == (char *)0x0;
          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;
        }
      }
      goto LAB_0002f490;
    }
    bVar20 = (byte)param_1[0xc] < 2;
    bVar22 = param_1[0xc] == 2;
    if (!bVar22) goto LAB_0002f490;
    bVar20 = false;
    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;
    if (!bVar22) goto LAB_0002f490;
    local_20 = &DAT_0008482c;
    FUN_00027700();
    bVar20 = (undefined1 *)0xffffffef < &local_3c;
    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;
    pbVar2 = *(byte **)*local_24;
  }
  else {
LAB_0002f490:
    DAT_0007b2a0 = (char *)0xffffffff;
    local_20 = &DAT_0008482c;
  }
LAB_0002f49a:
  iVar5 = 7;
  pbVar11 = (byte *)".debug";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar20 = *pbVar2 < *pbVar11;
    bVar22 = *pbVar2 == *pbVar11;
    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;
    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;
  } while (bVar22);
  if ((!bVar20 && !bVar22) == bVar20) {
    if (DAT_00083c2c == 0) {
      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))
      goto LAB_0002f4d8;
      DAT_00083c2c = 1;
      DAT_00083c60 = 0;
    }
    else if (DAT_00083c2c == 1) {
      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))
      goto LAB_0002f4d8;
      DAT_00083c2c = 2;
      DAT_00083c60 = 0;
    }
    else if (DAT_00083c2c == 2) {
      if (param_2 != (char *)0x4) goto LAB_0002f4d8;
      DAT_00083c2c = 3;
      DAT_00083c60 = 0;
    }
    else {
      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||
         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;
      DAT_00083c2c = 4;
      DAT_00083c60 = 1;
    }
  }
  else {
LAB_0002f4d8:
    DAT_00083c2c = 0;
    DAT_00083c60 = 0;
  }
  piStack_38 = (int *)&param_2;
  local_3c = param_1;
  iVar5 = FUN_0001f7b0();
  piVar8 = local_24;
  if (iVar5 != 0) {
    return;
  }
  bVar23 = param_1[0xc];
  if (bVar23 == 7) {
    if (*(int *)(param_1 + 8) == 0) {
      local_3c = *(char **)param_1;
      iVar5 = FUN_000396c0();
      if (*(char *)(iVar5 + 0xc) == '\x06') {
        local_3c = *(char **)param_1;
        iVar5 = FUN_000396c0();
        if (0 < *(int *)(iVar5 + 8)) {
          local_3c = *(char **)param_1;
          param_1 = (char *)FUN_000396c0();
          piVar8 = local_24;
          iVar5 = *(int *)(param_1 + 8);
          if (0 < iVar5) {
            uVar7 = 1;
            puVar10 = &DAT_00084880;
            do {
              uVar15 = *puVar10;
              puVar13 = puVar10 + 1;
              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);
              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;
              puVar10 = puVar13;
            } while (&DAT_00084880 + iVar5 != puVar13);
            local_24 = (int *)0xffffffff;
            goto LAB_0002f544;
          }
          goto LAB_0002fc48;
        }
      }
    }
    puVar6 = (undefined4 *)*local_24;
    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {
LAB_0002f8c1:
      piStack_38 = (int *)0x5bce0;
      piStack_34 = (int *)0x5;
      local_3c = (char *)0x0;
      local_3c = (char *)dcgettext();
      FUN_0002a980();
      goto LAB_0002f8df;
    }
LAB_0002f7a0:
    local_24 = (int *)0x0;
LAB_0002f7a8:
    if ((puVar6[5] & 0x103) == 1) {
      piStack_38 = (int *)0x5bc90;
      pcVar3 = (char *)*puVar6;
      piStack_34 = (int *)0x5;
      local_3c = (char *)0x0;
      local_3c = (char *)dcgettext();
      piStack_38 = (int *)pcVar3;
      FUN_0002a980();
    }
    local_3c = param_2;
    pcVar3 = (char *)FUN_000238d0();
    if (param_3 != (char *)0x47) goto LAB_0002f730;
    if (bVar23 == 2) goto LAB_0002f604;
    if (bVar23 != 6) {
      local_3c = (char *)0x47;
      FUN_0002f390(param_1,param_2,*local_20,pcVar3);
      return;
    }
    iStack_30 = *(int *)(param_1 + 8);
    pcVar14 = (char *)(iStack_30 * 2);
    if (param_2 < (char *)(iStack_30 * 2)) {
      uVar7 = (uint)param_2 >> 1;
      pcVar18 = param_2;
      if (uVar7 != 0) goto LAB_0002f669;
      if (param_2 == (char *)0x1) {
        local_20 = (undefined4 *)&DAT_00084880;
        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;
        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;
        iVar5 = 0;
        do {
          iVar5 = iVar5 + 1;
          if (iStack_30 <= iVar5) goto LAB_0002fb38;
        } while ((&DAT_00084880)[iVar5] == uVar15);
        pcVar18 = (char *)0x1;
      }
      else {
LAB_0002fb1d:
        pcVar14 = param_2;
        if (iStack_30 < 1) goto LAB_0002fb25;
      }
      goto LAB_0002fb98;
    }
  }
  else {
    if (bVar23 < 2) {
      piStack_38 = (int *)0x5bc48;
      piStack_34 = (int *)0x5;
      local_3c = (char *)0x0;
      local_3c = (char *)dcgettext();
      FUN_0002a8a0();
LAB_0002f5bf:
      param_1[8] = '\0';
      param_1[9] = '\0';
      param_1[10] = '\0';
      param_1[0xb] = '\0';
      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {
LAB_0002f8df:
        DAT_000848ec = DAT_000848ec + (int)param_2;
        return;
      }
    }
    else {
      if (bVar23 == 6) {
        local_24 = (int *)0x0;
        if (0 < *(int *)(param_1 + 8)) {
LAB_0002f544:
          puVar6 = (undefined4 *)*piVar8;
          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;
          bVar23 = 6;
          goto LAB_0002f7a8;
        }
LAB_0002fc48:
        piStack_38 = (int *)0x59ac4;
        piStack_34 = (int *)0x5;
        local_3c = (char *)0x0;
        local_24 = piVar8;
        local_3c = (char *)dcgettext();
        FUN_0002a980();
        goto LAB_0002f5bf;
      }
      if (bVar23 == 5) {
        piStack_38 = (int *)0x5bc6c;
        piStack_34 = (int *)0x5;
        local_3c = (char *)0x0;
        local_3c = (char *)dcgettext();
        FUN_0002a8a0();
        puVar6 = (undefined4 *)*local_24;
        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {
LAB_0002f8b6:
          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;
          goto LAB_0002f8c1;
        }
      }
      else {
        puVar6 = (undefined4 *)*local_24;
        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {
          if (bVar23 != 2) goto LAB_0002f8c1;
          goto LAB_0002f8b6;
        }
        if (bVar23 != 2) goto LAB_0002f7a0;
      }
      if (*(int *)(param_1 + 8) != 0) {
        local_24 = (int *)0x0;
        bVar23 = 2;
        goto LAB_0002f7a8;
      }
    }
    local_3c = param_2;
    pcVar3 = (char *)FUN_000238d0();
    if (param_3 != (char *)0x47) {
LAB_0002f730:
      local_3c = param_3;
      FUN_0002f390(param_1,param_2,*local_20,pcVar3);
      return;
    }
LAB_0002f604:
    piVar8 = *(int **)(param_1 + 8);
    if (param_2 < (char *)0x5) {
      piVar9 = piVar8;
      if (param_2 != (char *)0x4) {
        local_20 = (undefined4 *)((int)param_2 * 8);
        uVar7 = -1 << ((byte)local_20 & 0x1f);
        piVar9 = (int *)(~uVar7 & (uint)piVar8);
        local_24 = piVar9;
        if ((((uint)piVar8 & uVar7) != 0) &&
           ((((uint)piVar8 & uVar7) != uVar7 ||
            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {
          piStack_38 = (int *)0x5bcc0;
          piStack_34 = (int *)0x5;
          local_3c = (char *)0x0;
          local_3c = (char *)dcgettext();
          piVar9 = local_24;
          piStack_34 = local_24;
          piStack_38 = piVar8;
          FUN_0002a8a0();
        }
      }
      local_3c = pcVar3;
      piStack_38 = piVar9;
      piStack_34 = (int *)param_2;
      FUN_0003ed90();
      return;
    }
    if ((param_1[0xd] & 1U) == 0) {
      uVar4 = 0xffff;
      local_24 = (int *)0xffffffff;
    }
    else {
      uVar4 = 0;
      local_24 = (int *)0x0;
    }
    if ((int)piVar8 < 0) {
      pcVar14 = (char *)0x4;
      iStack_30 = 2;
    }
    else {
      pcVar14 = (char *)0x6;
      iStack_30 = 3;
      DAT_00084884 = uVar4;
    }
    local_20 = (undefined4 *)&DAT_00084880;
    _DAT_00084880 = piVar8;
    param_1[0xc] = '\x06';
    *(int *)(param_1 + 8) = iStack_30;
    pcVar18 = param_2;
    if (pcVar14 <= param_2) goto LAB_0002f698;
    uVar7 = 2;
    pcVar18 = (char *)0x5;
LAB_0002f669:
    iVar5 = uVar7 - 1;
    psVar1 = (short *)(&DAT_00084880 + iVar5);
    local_20 = (undefined4 *)CONCAT22(8,*psVar1);
    do {
      iVar5 = iVar5 + 1;
      pcVar14 = pcVar18;
      if (iStack_30 <= iVar5) goto LAB_0002f698;
    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);
LAB_0002fb98:
    local_3c = (char *)0x5;
    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",
                                  pcVar18);
    piStack_38 = (int *)pcVar18;
    FUN_0002a8a0();
    iStack_30 = extraout_ECX;
    pcVar14 = param_2;
  }
LAB_0002fb25:
  pcVar18 = param_2;
  if (param_2 == (char *)0x1) {
LAB_0002fb38:
    local_20 = (undefined4 *)&DAT_00084880;
    piStack_34 = (int *)0x1;
    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);
    local_3c = pcVar3;
    FUN_0003ed90();
    return;
  }
LAB_0002f698:
  piVar8 = local_24;
  if (((uint)pcVar18 & 1) == 0) {
    local_3c = pcVar3;
    if (DAT_00083c1c == 0) {
      pcVar17 = pcVar3;
      if ((char *)0x1 < pcVar14) {
        puVar10 = &DAT_00084880;
        do {
          piStack_38 = (int *)(uint)*puVar10;
          puVar10 = puVar10 + 1;
          piStack_34 = (int *)0x2;
          pcVar12 = local_3c + 2;
          FUN_0003ed90();
          param_2 = param_2 + -2;
          local_3c = pcVar12;
          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;
          piVar8 = local_24;
          pcVar18 = param_2;
        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);
      }
      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {
        piStack_34 = (int *)0x2;
        piStack_38 = local_24;
        pcVar17 = local_3c + 2;
        local_24 = piVar8;
        FUN_0003ed90();
        param_2 = param_2 + -2;
        piVar8 = local_24;
        local_24 = piVar9;
        pcVar18 = param_2;
      }
    }
    else {
      while (pcVar14 < pcVar18) {
        piStack_34 = (int *)0x2;
        piStack_38 = piVar8;
        pcVar3 = local_3c + 2;
        FUN_0003ed90();
        param_2 = param_2 + -2;
        local_3c = pcVar3;
        pcVar18 = param_2;
      }
      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));
      if ((char *)0x1 < pcVar14) {
        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;
        do {
          puVar10 = puVar10 + -1;
          piStack_38 = (int *)(uint)*puVar10;
          piStack_34 = (int *)0x2;
          pcVar14 = local_3c + 2;
          FUN_0003ed90();
          local_3c = pcVar14;
        } while (pcVar14 != pcVar3);
      }
    }
    return;
  }
  piStack_34 = (int *)0x5cc0c;
  local_3c = "../../gas/read.c";
  piStack_38 = (int *)0x1180;
                    /* WARNING: Subroutine does not return */
  FUN_0002aaa0();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016020
ADD EBX,0x4bc17
SUB ESP,0x1c
LEA EAX,[EBX + 0x96e8]
MOV EBP,dword ptr [EAX]
TEST EBP,EBP
JZ 0x0002f410
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
LEA EDI,[EBX + 0xfffdfc91]
PUSH dword ptr [ESP + 0x40]
CALL 0x00023780
CALL 0x00023b00
LEA EDX,[EBX + 0x9a50]
MOV ECX,0x6
MOV dword ptr [EDX],EAX
LEA EAX,[EBX + 0x982c]
MOV EDX,dword ptr [EAX]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0x9a5c]
MOV dword ptr [EAX],EDX
LEA EDX,[EBX + 0x96fc]
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
ADD ESP,0x10
TEST CL,CL
JNZ 0x0002f490
MOV ESI,dword ptr [EBX + 0x2a0]
MOV ECX,dword ptr [ESP + 0x34]
TEST ESI,ESI
JS 0x0002f47a
CMP ECX,0x2
JZ 0x0002f9e8
CMP ECX,0x4
JNZ 0x0002f490
MOV ECX,dword ptr [ESP + 0x30]
CMP byte ptr [ECX + 0xc],0x2
JZ 0x0002f9a0
LEA ESI,[ESI]
MOV dword ptr [EBX + 0x2a0],0xffffffff
MOV ESI,EAX
MOV ECX,0x7
LEA EDI,[EBX + 0xfffdfc8a]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0002f4d8
MOV EAX,dword ptr [EBX + 0x8c2c]
TEST EAX,EAX
JZ 0x0002f568
CMP EAX,0x1
JNZ 0x0002f758
CMP dword ptr [ESP + 0x34],0x2
JZ 0x0002f970
LEA ESI,[ESI]
MOV dword ptr [EBX + 0x8c2c],0x0
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0x8
LEA EAX,[ESP + 0x3c]
MOV dword ptr [EBX + 0x8c60],EBP
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x0001f7b0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x0002f3fe
MOV EAX,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [ESP + 0x8]
MOVZX EDI,byte ptr [EAX + 0xc]
CMP EDI,0x7
JZ 0x0002f780
CMP EDI,0x1
JBE 0x0002f5a0
CMP EDI,0x6
JNZ 0x0002f850
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x8],0x0
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JLE 0x0002fc48
MOV EAX,dword ptr [EBX + 0xffffffb0]
MOV EDX,dword ptr [EDX]
ADD EAX,0x150
CMP EDX,EAX
JZ 0x0002f8c1
MOV EDI,0x6
JMP 0x0002f7a8
CMP dword ptr [ESP + 0x34],0x2
JNZ 0x0002f4d8
MOV EAX,dword ptr [ESP + 0x30]
CMP byte ptr [EAX + 0xc],0x2
JNZ 0x0002f4d8
CMP dword ptr [EAX + 0x8],0x11
JNZ 0x0002f4d8
MOV dword ptr [EBX + 0x8c2c],0x1
XOR EBP,EBP
JMP 0x0002f4e2
MOV dword ptr [ESP + 0x8],EDX
LEA EAX,[EBX + 0xfffe0c48]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002a8a0
MOV EAX,dword ptr [ESP + 0x40]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + 0x8],0x0
MOV EAX,dword ptr [EBX + 0xffffffb0]
ADD EAX,0x150
CMP dword ptr [EDX],EAX
JZ 0x0002f8df
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x000238d0
ADD ESP,0x10
CMP dword ptr [ESP + 0x38],0x47
MOV ESI,EAX
JNZ 0x0002f730
MOV EAX,dword ptr [ESP + 0x34]
MOV ECX,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [ECX + 0x8]
MOV EDI,EDX
CMP EAX,0x4
JBE 0x0002f8f0
TEST byte ptr [ECX + 0xd],0x1
JZ 0x0002fc70
LEA ECX,[EBX + 0x9880]
MOV dword ptr [ESP + 0xc],ECX
MOV dword ptr [ECX],EDX
XOR ECX,ECX
MOV dword ptr [ESP + 0x8],0x0
TEST EDX,EDX
JNS 0x0002fc91
MOV EDX,dword ptr [ESP + 0xc]
MOV EDI,0x6
MOV word ptr [EDX + 0x4],CX
MOV ECX,0x3
MOV EDX,dword ptr [ESP + 0x30]
MOV byte ptr [EDX + 0xc],0x6
MOV dword ptr [EDX + 0x8],ECX
CMP EDI,EAX
JBE 0x0002f698
MOV EDI,0x5
MOV EDX,0x2
MOV EBP,dword ptr [ESP + 0xc]
SUB EDX,0x1
MOVZX EAX,word ptr [EBP + EDX*0x2]
MOV word ptr [ESP + 0xc],AX
SAR AX,0xf
JMP 0x0002f68b
CMP word ptr [EBP + EDX*0x2],AX
JNZ 0x0002fb98
ADD EDX,0x1
CMP EDX,ECX
JL 0x0002f680
MOV EAX,EDI
LEA ESI,[ESI]
TEST AL,0x1
JNZ 0x0002fcb8
MOV EDX,dword ptr [EBX + 0x8c1c]
TEST EDX,EDX
JNZ 0x0002fbd0
CMP EDI,0x1
JBE 0x0002fca0
SUB EDI,0x2
LEA EBP,[EBX + 0x9880]
SHR EDI,0x1
LEA EDI,[ESI + EDI*0x2 + 0x2]
LEA ESI,[ESI]
LEA ESI,[ESI]
MOVZX EAX,word ptr [EBP]
SUB ESP,0x4
ADD EBP,0x2
PUSH 0x2
PUSH EAX
PUSH ESI
ADD ESI,0x2
CALL 0x0003ed90
MOV EAX,dword ptr [ESP + 0x44]
SUB EAX,0x2
MOV dword ptr [ESP + 0x44],EAX
ADD ESP,0x10
CMP ESI,EDI
JNZ 0x0002f6d0
CMP EAX,0x1
JBE 0x0002f3fe
MOV ESI,dword ptr [ESP + 0x8]
LEA ESI,[ESI]
SUB ESP,0x4
PUSH 0x2
PUSH ESI
PUSH EDI
ADD EDI,0x2
CALL 0x0003ed90
MOV EAX,dword ptr [ESP + 0x44]
SUB EAX,0x2
MOV dword ptr [ESP + 0x44],EAX
ADD ESP,0x10
CMP EAX,0x1
JA 0x0002f708
JMP 0x0002f3fe
SUB ESP,0xc
PUSH dword ptr [ESP + 0x44]
PUSH ESI
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
PUSH dword ptr [ESP + 0x4c]
PUSH dword ptr [ESP + 0x4c]
CALL 0x0002f390
ADD ESP,0x20
JMP 0x0002f3fe
CMP EAX,0x2
JNZ 0x0002f810
CMP dword ptr [ESP + 0x34],0x4
JNZ 0x0002f4d8
MOV dword ptr [EBX + 0x8c2c],0x3
XOR EBP,EBP
JMP 0x0002f4e2
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0002fa60
MOV EAX,dword ptr [EBX + 0xffffffb0]
MOV EDX,dword ptr [EDX]
ADD EAX,0x150
CMP EDX,EAX
JZ 0x0002f8c1
MOV dword ptr [ESP + 0x8],0x0
MOV EAX,dword ptr [EDX + 0x14]
AND EAX,0x103
CMP EAX,0x1
JZ 0x0002fa30
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x000238d0
ADD ESP,0x10
CMP dword ptr [ESP + 0x38],0x47
MOV ESI,EAX
JNZ 0x0002f730
MOV EAX,dword ptr [ESP + 0x34]
CMP EDI,0x2
JZ 0x0002f604
CMP EDI,0x6
JZ 0x0002fb00
SUB ESP,0xc
PUSH 0x47
PUSH ESI
MOV ECX,dword ptr [ESP + 0x20]
PUSH dword ptr [ECX]
PUSH EAX
PUSH dword ptr [ESP + 0x4c]
CALL 0x0002f390
ADD ESP,0x20
JMP 0x0002f3fe
CMP EAX,0x3
JNZ 0x0002f4d8
CMP dword ptr [ESP + 0x34],0x2
JNZ 0x0002f4d8
MOV EAX,dword ptr [ESP + 0x30]
CMP byte ptr [EAX + 0xc],0x2
JNZ 0x0002f4d8
CMP dword ptr [EAX + 0x8],0x38
JNZ 0x0002f4d8
MOV dword ptr [EBX + 0x8c2c],0x4
MOV EBP,0x1
JMP 0x0002f4e2
CMP EDI,0x5
JNZ 0x0002f9c0
MOV dword ptr [ESP + 0x8],EDX
LEA EAX,[EBX + 0xfffe0c6c]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002a8a0
MOV EDX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EBX + 0xffffffb0]
ADD ESP,0x10
MOV EDX,dword ptr [EDX]
ADD EAX,0x150
CMP EDX,EAX
JZ 0x0002f8b6
MOV EAX,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JZ 0x0002f5e4
MOV dword ptr [ESP + 0x8],0x0
MOV EDI,0x2
JMP 0x0002f7a8
CMP EDI,0x2
JNZ 0x0002f8c1
MOV EAX,dword ptr [ESP + 0x30]
MOV EDI,dword ptr [EAX + 0x8]
TEST EDI,EDI
JZ 0x0002f8df
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe0ce0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002a980
ADD ESP,0x10
LEA EAX,[EBX + 0x98ec]
MOV EDX,dword ptr [ESP + 0x34]
ADD dword ptr [EAX],EDX
JMP 0x0002f3fe
JZ 0x0002f95d
LEA ECX,[EAX*0x8 + 0x0]
MOV EBP,0xffffffff
SHL EBP,CL
MOV dword ptr [ESP + 0xc],ECX
MOV ECX,EBP
NOT EBP
AND EBP,EDX
MOV dword ptr [ESP + 0x8],EBP
MOV EBP,EDX
AND EBP,ECX
JZ 0x0002fcd1
CMP EBP,ECX
JNZ 0x0002f932
MOV ECX,dword ptr [ESP + 0xc]
MOV EBP,0x1
SUB ECX,0x1
SHL EBP,CL
AND EBP,EDX
MOV EDX,dword ptr [ESP + 0x8]
JNZ 0x0002f95d
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe0cc0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
ADD ESP,0xc
MOV EBP,dword ptr [ESP + 0xc]
PUSH EBP
PUSH EDI
PUSH EAX
CALL 0x0002a8a0
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,EBP
ADD ESP,0x10
SUB ESP,0x4
PUSH EAX
PUSH EDX
PUSH ESI
CALL 0x0003ed90
ADD ESP,0x10
JMP 0x0002f3fe
MOV EAX,dword ptr [ESP + 0x30]
CMP byte ptr [EAX + 0xc],0x2
JNZ 0x0002f4d8
CMP dword ptr [EAX + 0x8],0x12
JNZ 0x0002f4d8
MOV dword ptr [EBX + 0x8c2c],0x2
XOR EBP,EBP
JMP 0x0002f4e2
MOV ECX,dword ptr [ECX + 0x8]
TEST ECX,ECX
JS 0x0002f490
MOV dword ptr [EBX + 0x2a0],ECX
JMP 0x0002f49a
MOV EAX,dword ptr [EBX + 0xffffffb0]
MOV EDX,dword ptr [EDX]
ADD EAX,0x150
CMP EDX,EAX
JZ 0x0002f8b1
CMP EDI,0x2
JZ 0x0002f890
JMP 0x0002f7a0
MOV ECX,dword ptr [ESP + 0x30]
CMP byte ptr [ECX + 0xc],0x2
JNZ 0x0002f490
MOV ECX,dword ptr [ECX + 0x8]
MOV dword ptr [ESP + 0x8],ECX
ADD ECX,0x1
AND ECX,0xfffeffff
JNZ 0x0002f490
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0xc
PUSH ESI
CALL 0x00027700
MOV EDX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [EDX]
MOV EAX,dword ptr [EAX]
JMP 0x0002f49a
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe0c90]
MOV ESI,dword ptr [EDX]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002a980
ADD ESP,0x10
JMP 0x0002f7b9
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x3c]
PUSH dword ptr [EAX]
CALL 0x000396c0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
CMP byte ptr [EAX + 0xc],0x6
JNZ 0x0002f78b
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x3c]
PUSH dword ptr [EAX]
CALL 0x000396c0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JLE 0x0002f78b
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x3c]
PUSH dword ptr [EAX]
CALL 0x000396c0
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,dword ptr [EAX + 0x8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JLE 0x0002fc48
LEA ESI,[EBX + 0x9880]
LEA EDI,[ESI + EAX*0x2]
MOV EAX,0x1
LEA ESI,[ESI]
MOVZX ECX,word ptr [ESI]
ADD ESI,0x2
NOT ECX
MOVZX ECX,CX
ADD EAX,ECX
MOV word ptr [ESI + -0x2],AX
SHR EAX,0x10
CMP EDI,ESI
JNZ 0x0002fad8
MOV dword ptr [ESP + 0x8],0xffffffff
JMP 0x0002f544
MOV ECX,dword ptr [ESP + 0x30]
MOV ECX,dword ptr [ECX + 0x8]
LEA EDI,[ECX + ECX*0x1]
CMP EAX,EDI
JNC 0x0002fb25
MOV EDX,EAX
SHR EDX,0x1
JNZ 0x0002fca7
CMP EAX,0x1
JZ 0x0002fb53
MOV EDI,EAX
TEST ECX,ECX
JG 0x0002fb98
MOV EDI,EAX
CMP EAX,0x1
JNZ 0x0002f698
LEA EAX,[EBX + 0x9880]
MOV dword ptr [ESP + 0xc],EAX
SUB ESP,0x4
PUSH 0x1
MOV EAX,dword ptr [ESP + 0x14]
MOVZX EAX,word ptr [EAX]
PUSH EAX
PUSH ESI
CALL 0x0003ed90
ADD ESP,0x10
JMP 0x0002f3fe
LEA EDX,[EBX + 0x9880]
MOV dword ptr [ESP + 0xc],EDX
MOVZX EDX,word ptr [EDX]
MOV EDI,EDX
SHL EDI,0x8
SAR DI,0xf
XOR EDX,EDI
TEST DX,0xff00
JNZ 0x0002fb1d
MOV EAX,dword ptr [ESP + 0xc]
LEA ESI,[ESI]
LEA ESI,[ESI]
ADD EBP,0x1
CMP EBP,ECX
JGE 0x0002fb38
CMP word ptr [EAX + EBP*0x2],DI
JZ 0x0002fb80
MOV EDI,0x1
LEA ESI,[ESI]
SUB ESP,0xc
LEA EAX,[EBX + 0xfffe14fa]
PUSH 0x5
PUSH EDI
PUSH EAX
LEA EAX,[EBX + 0xfffe1517]
PUSH EAX
PUSH 0x0
CALL 0x00014740
ADD ESP,0x18
PUSH EDI
PUSH EAX
CALL 0x0002a8a0
MOV EAX,dword ptr [ESP + 0x44]
ADD ESP,0x10
JMP 0x0002fb23
CMP EAX,EDI
JBE 0x0002fc01
MOV EBP,dword ptr [ESP + 0x8]
LEA ESI,[ESI]
NOP
SUB ESP,0x4
PUSH 0x2
PUSH EBP
PUSH ESI
ADD ESI,0x2
CALL 0x0003ed90
MOV EAX,dword ptr [ESP + 0x44]
SUB EAX,0x2
MOV dword ptr [ESP + 0x44],EAX
ADD ESP,0x10
CMP EAX,EDI
JA 0x0002fbe0
MOV EBP,EDI
AND EBP,0xfffffffe
ADD EBP,dword ptr [EBX + 0xffffffa0]
CMP EDI,0x1
JBE 0x0002f3fe
SUB EDI,0x2
SHR EDI,0x1
LEA EDI,[ESI + EDI*0x2 + 0x2]
NOP
SUB EBP,0x2
MOVZX EAX,word ptr [EBP]
SUB ESP,0x4
PUSH 0x2
PUSH EAX
PUSH ESI
ADD ESI,0x2
CALL 0x0003ed90
ADD ESP,0x10
CMP ESI,EDI
JNZ 0x0002fc20
JMP 0x0002f3fe
MOV dword ptr [ESP + 0x8],EDX
LEA EAX,[EBX + 0xfffdeac4]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002a980
JMP 0x0002f5bf
LEA ECX,[EBX + 0x9880]
MOV dword ptr [ESP + 0xc],ECX
MOV dword ptr [ECX],EDX
MOV ECX,0xffffffff
MOV dword ptr [ESP + 0x8],0xffffffff
TEST EDX,EDX
JNS 0x0002f63e
MOV EDI,0x4
MOV ECX,0x2
JMP 0x0002f650
MOV EDI,ESI
JMP 0x0002f6f8
MOV EDI,EAX
LEA EAX,[EBX + 0x9880]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x0002f669
LEA EAX,[EBX + 0xfffe1c0c]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xfffe127c]
PUSH 0x1180
PUSH EAX
CALL 0x0002aaa0
MOV EDX,dword ptr [ESP + 0x8]
JMP 0x0002f95d
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_0002f3e0(char *param_1,char *param_2,char *param_3)\n\n{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  undefined2 uVar4;\n  int iVar5;\n  int extraout_ECX;\n  undefined4 *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int *piVar9;\n  ushort *puVar10;\n  byte *pbVar11;\n  char *pcVar12;\n  ushort *puVar13;\n  char *pcVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  char *pcVar17;\n  char *pcVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char *local_3c;\n  int *piStack_38;\n  int *piStack_34;\n  int iStack_30;\n  undefined1 auStack_2c [8];\n  int *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2f3e9;\n  if (DAT_000846e8 != 0) {\n    return;\n  }\n  uVar19 = auStack_2c < (undefined1 *)0xc;\n  uVar21 = &stack0x00000000 == (undefined1 *)0x38;\n  local_3c = param_2;\n  FUN_00023780();\n  DAT_00084a50 = FUN_00023b00();\n  iVar5 = 6;\n  local_20 = &DAT_0008482c;\n  DAT_00084a5c = DAT_0008482c;\n  local_24 = (int *)&DAT_000846fc;\n  pbVar2 = (byte *)*DAT_000846fc;\n  pbVar11 = pbVar2;\n  pbVar16 = (byte *)".line";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);\n  bVar20 = false;\n  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n  if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }\nLAB_0002f49a:\n  iVar5 = 7;\n  pbVar11 = (byte *)".debug";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }\n  piStack_38 = (int *)&param_2;\n  local_3c = param_1;\n  iVar5 = FUN_0001f7b0();\n  piVar8 = local_24;\n  if (iVar5 != 0) {\n    return;\n  }\n  bVar23 = param_1[0xc];\n  if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }\nLAB_0002fb25:\n  pcVar18 = param_2;\n  if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }\nLAB_0002f698:\n  piVar8 = local_24;\n  if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }\n  piStack_34 = (int *)0x5cc0c;\n  local_3c = "../../gas/read.c";\n  piStack_38 = (int *)0x1180;\n                    /* WARNING: Subroutine does not return */\n  FUN_0002aaa0();\n}\n\n" comment comment comment (function_definition "void FUN_0002f3e0(char *param_1,char *param_2,char *param_3)\n\n{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  undefined2 uVar4;\n  int iVar5;\n  int extraout_ECX;\n  undefined4 *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int *piVar9;\n  ushort *puVar10;\n  byte *pbVar11;\n  char *pcVar12;\n  ushort *puVar13;\n  char *pcVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  char *pcVar17;\n  char *pcVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char *local_3c;\n  int *piStack_38;\n  int *piStack_34;\n  int iStack_30;\n  undefined1 auStack_2c [8];\n  int *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2f3e9;\n  if (DAT_000846e8 != 0) {\n    return;\n  }\n  uVar19 = auStack_2c < (undefined1 *)0xc;\n  uVar21 = &stack0x00000000 == (undefined1 *)0x38;\n  local_3c = param_2;\n  FUN_00023780();\n  DAT_00084a50 = FUN_00023b00();\n  iVar5 = 6;\n  local_20 = &DAT_0008482c;\n  DAT_00084a5c = DAT_0008482c;\n  local_24 = (int *)&DAT_000846fc;\n  pbVar2 = (byte *)*DAT_000846fc;\n  pbVar11 = pbVar2;\n  pbVar16 = (byte *)".line";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);\n  bVar20 = false;\n  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n  if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }\nLAB_0002f49a:\n  iVar5 = 7;\n  pbVar11 = (byte *)".debug";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }\n  piStack_38 = (int *)&param_2;\n  local_3c = param_1;\n  iVar5 = FUN_0001f7b0();\n  piVar8 = local_24;\n  if (iVar5 != 0) {\n    return;\n  }\n  bVar23 = param_1[0xc];\n  if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }\nLAB_0002fb25:\n  pcVar18 = param_2;\n  if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }\nLAB_0002f698:\n  piVar8 = local_24;\n  if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }\n  piStack_34 = (int *)0x5cc0c;\n  local_3c = "../../gas/read.c";\n  piStack_38 = (int *)0x1180;\n                    /* WARNING: Subroutine does not return */\n  FUN_0002aaa0();\n}" primitive_type (function_declarator "FUN_0002f3e0(char *param_1,char *param_2,char *param_3)" identifier (parameter_list "(char *param_1,char *param_2,char *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  undefined2 uVar4;\n  int iVar5;\n  int extraout_ECX;\n  undefined4 *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int *piVar9;\n  ushort *puVar10;\n  byte *pbVar11;\n  char *pcVar12;\n  ushort *puVar13;\n  char *pcVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  char *pcVar17;\n  char *pcVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char *local_3c;\n  int *piStack_38;\n  int *piStack_34;\n  int iStack_30;\n  undefined1 auStack_2c [8];\n  int *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2f3e9;\n  if (DAT_000846e8 != 0) {\n    return;\n  }\n  uVar19 = auStack_2c < (undefined1 *)0xc;\n  uVar21 = &stack0x00000000 == (undefined1 *)0x38;\n  local_3c = param_2;\n  FUN_00023780();\n  DAT_00084a50 = FUN_00023b00();\n  iVar5 = 6;\n  local_20 = &DAT_0008482c;\n  DAT_00084a5c = DAT_0008482c;\n  local_24 = (int *)&DAT_000846fc;\n  pbVar2 = (byte *)*DAT_000846fc;\n  pbVar11 = pbVar2;\n  pbVar16 = (byte *)".line";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);\n  bVar20 = false;\n  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n  if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }\nLAB_0002f49a:\n  iVar5 = 7;\n  pbVar11 = (byte *)".debug";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }\n  piStack_38 = (int *)&param_2;\n  local_3c = param_1;\n  iVar5 = FUN_0001f7b0();\n  piVar8 = local_24;\n  if (iVar5 != 0) {\n    return;\n  }\n  bVar23 = param_1[0xc];\n  if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }\nLAB_0002fb25:\n  pcVar18 = param_2;\n  if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }\nLAB_0002f698:\n  piVar8 = local_24;\n  if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }\n  piStack_34 = (int *)0x5cc0c;\n  local_3c = "../../gas/read.c";\n  piStack_38 = (int *)0x1180;\n                    /* WARNING: Subroutine does not return */\n  FUN_0002aaa0();\n}" { (declaration "short *psVar1;" (sized_type_specifier "short" short) (pointer_declarator "*psVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined2 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "ushort *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ushort *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "ushort uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "undefined1 uVar21;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "char *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "int *piStack_38;" primitive_type (pointer_declarator "*piStack_38" * identifier) ;) (declaration "int *piStack_34;" primitive_type (pointer_declarator "*piStack_34" * identifier) ;) (declaration "int iStack_30;" primitive_type identifier ;) (declaration "undefined1 auStack_2c [8];" type_identifier (array_declarator "auStack_2c [8]" identifier [ number_literal ]) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x2f3e9;" (assignment_expression "uStack_14 = 0x2f3e9" identifier = number_literal) ;) (if_statement "if (DAT_000846e8 != 0) {\n    return;\n  }" if (parenthesized_expression "(DAT_000846e8 != 0)" ( (binary_expression "DAT_000846e8 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar19 = auStack_2c < (undefined1 *)0xc;" (assignment_expression "uVar19 = auStack_2c < (undefined1 *)0xc" identifier = (binary_expression "auStack_2c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar21 = &stack0x00000000 == (undefined1 *)0x38;" (assignment_expression "uVar21 = &stack0x00000000 == (undefined1 *)0x38" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x38" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x38" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" identifier = identifier) ;) (expression_statement "FUN_00023780();" (call_expression "FUN_00023780()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00084a50 = FUN_00023b00();" (assignment_expression "DAT_00084a50 = FUN_00023b00()" identifier = (call_expression "FUN_00023b00()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (expression_statement "local_20 = &DAT_0008482c;" (assignment_expression "local_20 = &DAT_0008482c" identifier = (pointer_expression "&DAT_0008482c" & identifier)) ;) (expression_statement "DAT_00084a5c = DAT_0008482c;" (assignment_expression "DAT_00084a5c = DAT_0008482c" identifier = identifier) ;) (expression_statement "local_24 = (int *)&DAT_000846fc;" (assignment_expression "local_24 = (int *)&DAT_000846fc" identifier = (cast_expression "(int *)&DAT_000846fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000846fc" & identifier))) ;) (expression_statement "pbVar2 = (byte *)*DAT_000846fc;" (assignment_expression "pbVar2 = (byte *)*DAT_000846fc" identifier = (cast_expression "(byte *)*DAT_000846fc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000846fc" * identifier))) ;) (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)".line";" (assignment_expression "pbVar16 = (byte *)".line"" identifier = (cast_expression "(byte *)".line"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".line"" " string_content "))) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = *pbVar11 < *pbVar16;" (assignment_expression "uVar19 = *pbVar11 < *pbVar16" identifier = (binary_expression "*pbVar11 < *pbVar16" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "uVar21 = *pbVar11 == *pbVar16;" (assignment_expression "uVar21 = *pbVar11 == *pbVar16" identifier = (binary_expression "*pbVar11 == *pbVar16" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar21)" ( (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;" (assignment_expression "bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19" identifier = (binary_expression "(!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar21)" ( (binary_expression "!(bool)uVar19 && !(bool)uVar21" (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar21" ! (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }" { (expression_statement "local_3c = DAT_0007b2a0;" (assignment_expression "local_3c = DAT_0007b2a0" identifier = identifier) ;) (if_statement "if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }" if (parenthesized_expression "(((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2))" ( (binary_expression "((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)" (parenthesized_expression "((int)DAT_0007b2a0 < 0)" ( (binary_expression "(int)DAT_0007b2a0 < 0" (cast_expression "(int)DAT_0007b2a0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(param_2 != (char *)0x2)" ( (binary_expression "param_2 != (char *)0x2" identifier != (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }" { (expression_statement "bVar20 = param_2 < (char *)0x4;" (assignment_expression "bVar20 = param_2 < (char *)0x4" identifier = (binary_expression "param_2 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar22 = param_2 == (char *)0x4;" (assignment_expression "bVar22 = param_2 == (char *)0x4" identifier = (binary_expression "param_2 == (char *)0x4" identifier == (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }" { (expression_statement "bVar20 = (byte)param_1[0xc] < 2;" (assignment_expression "bVar20 = (byte)param_1[0xc] < 2" identifier = (binary_expression "(byte)param_1[0xc] < 2" (cast_expression "(byte)param_1[0xc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ])) < number_literal)) ;) (expression_statement "bVar22 = param_1[0xc] == 2;" (assignment_expression "bVar22 = param_1[0xc] == 2" identifier = (binary_expression "param_1[0xc] == 2" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) == number_literal)) ;) (if_statement "if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }" { (expression_statement "DAT_0007b2a0 = *(char **)(param_1 + 8);" (assignment_expression "DAT_0007b2a0 = *(char **)(param_1 + 8)" identifier = (pointer_expression "*(char **)(param_1 + 8)" * (cast_expression "(char **)(param_1 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar22 = DAT_0007b2a0 == (char *)0x0;" (assignment_expression "bVar22 = DAT_0007b2a0 == (char *)0x0" identifier = (binary_expression "DAT_0007b2a0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;" if (parenthesized_expression "(-1 < (int)DAT_0007b2a0)" ( (binary_expression "-1 < (int)DAT_0007b2a0" number_literal < (cast_expression "(int)DAT_0007b2a0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002f49a;" goto statement_identifier ;)) })) })) (goto_statement "goto LAB_0002f490;" goto statement_identifier ;) })) (expression_statement "bVar20 = (byte)param_1[0xc] < 2;" (assignment_expression "bVar20 = (byte)param_1[0xc] < 2" identifier = (binary_expression "(byte)param_1[0xc] < 2" (cast_expression "(byte)param_1[0xc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ])) < number_literal)) ;) (expression_statement "bVar22 = param_1[0xc] == 2;" (assignment_expression "bVar22 = param_1[0xc] == 2" identifier = (binary_expression "param_1[0xc] == 2" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) == number_literal)) ;) (if_statement "if (!bVar22) goto LAB_0002f490;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0002f490;" goto statement_identifier ;)) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;" (assignment_expression "bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0" identifier = (binary_expression "(*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0" (parenthesized_expression "(*(int *)(param_1 + 8) + 1U & 0xfffeffff)" ( (binary_expression "*(int *)(param_1 + 8) + 1U & 0xfffeffff" (binary_expression "*(int *)(param_1 + 8) + 1U" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar22) goto LAB_0002f490;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0002f490;" goto statement_identifier ;)) (expression_statement "local_20 = &DAT_0008482c;" (assignment_expression "local_20 = &DAT_0008482c" identifier = (pointer_expression "&DAT_0008482c" & identifier)) ;) (expression_statement "FUN_00027700();" (call_expression "FUN_00027700()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar20 = (undefined1 *)0xffffffef < &local_3c;" (assignment_expression "bVar20 = (undefined1 *)0xffffffef < &local_3c" identifier = (binary_expression "(undefined1 *)0xffffffef < &local_3c" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&local_3c" & identifier))) ;) (expression_statement "bVar22 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "bVar22 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar2 = *(byte **)*local_24;" (assignment_expression "pbVar2 = *(byte **)*local_24" identifier = (pointer_expression "*(byte **)*local_24" * (cast_expression "(byte **)*local_24" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_24" * identifier)))) ;) }) (else_clause "else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }" else (compound_statement "{\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }" { (labeled_statement "LAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;" statement_identifier : (expression_statement "DAT_0007b2a0 = (char *)0xffffffff;" (assignment_expression "DAT_0007b2a0 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_20 = &DAT_0008482c;" (assignment_expression "local_20 = &DAT_0008482c" identifier = (pointer_expression "&DAT_0008482c" & identifier)) ;) }))) (labeled_statement "LAB_0002f49a:\n  iVar5 = 7;" statement_identifier : (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;)) (expression_statement "pbVar11 = (byte *)".debug";" (assignment_expression "pbVar11 = (byte *)".debug"" identifier = (cast_expression "(byte *)".debug"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug"" " string_content "))) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar2 < *pbVar11;" (assignment_expression "bVar20 = *pbVar2 < *pbVar11" identifier = (binary_expression "*pbVar2 < *pbVar11" (pointer_expression "*pbVar2" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar22 = *pbVar2 == *pbVar11;" (assignment_expression "bVar22 = *pbVar2 == *pbVar11" identifier = (binary_expression "*pbVar2 == *pbVar11" (pointer_expression "*pbVar2" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar2 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar2 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }" if (parenthesized_expression "((!bVar20 && !bVar22) == bVar20)" ( (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" ( (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (compound_statement "{\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }" { (if_statement "if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" if (parenthesized_expression "(DAT_00083c2c == 0)" ( (binary_expression "DAT_00083c2c == 0" identifier == number_literal) )) (compound_statement "{\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }" { (if_statement "if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;" if (parenthesized_expression "(((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))" ( (binary_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11)" (parenthesized_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02'))" ( (binary_expression "(param_2 != (char *)0x2) || (param_1[0xc] != '\x02')" (parenthesized_expression "(param_2 != (char *)0x2)" ( (binary_expression "param_2 != (char *)0x2" identifier != (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_1[0xc] != '\x02')" ( (binary_expression "param_1[0xc] != '\x02'" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) != (char_literal "'\x02'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(*(int *)(param_1 + 8) != 0x11)" ( (binary_expression "*(int *)(param_1 + 8) != 0x11" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (expression_statement "DAT_00083c2c = 1;" (assignment_expression "DAT_00083c2c = 1" identifier = number_literal) ;) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" identifier = number_literal) ;) }) (else_clause "else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" else (if_statement "if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" if (parenthesized_expression "(DAT_00083c2c == 1)" ( (binary_expression "DAT_00083c2c == 1" identifier == number_literal) )) (compound_statement "{\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }" { (if_statement "if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;" if (parenthesized_expression "(((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))" ( (binary_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12)" (parenthesized_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02'))" ( (binary_expression "(param_2 != (char *)0x2) || (param_1[0xc] != '\x02')" (parenthesized_expression "(param_2 != (char *)0x2)" ( (binary_expression "param_2 != (char *)0x2" identifier != (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_1[0xc] != '\x02')" ( (binary_expression "param_1[0xc] != '\x02'" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) != (char_literal "'\x02'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(*(int *)(param_1 + 8) != 0x12)" ( (binary_expression "*(int *)(param_1 + 8) != 0x12" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (expression_statement "DAT_00083c2c = 2;" (assignment_expression "DAT_00083c2c = 2" identifier = number_literal) ;) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" identifier = number_literal) ;) }) (else_clause "else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" else (if_statement "if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" if (parenthesized_expression "(DAT_00083c2c == 2)" ( (binary_expression "DAT_00083c2c == 2" identifier == number_literal) )) (compound_statement "{\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }" { (if_statement "if (param_2 != (char *)0x4) goto LAB_0002f4d8;" if (parenthesized_expression "(param_2 != (char *)0x4)" ( (binary_expression "param_2 != (char *)0x4" identifier != (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (expression_statement "DAT_00083c2c = 3;" (assignment_expression "DAT_00083c2c = 3" identifier = number_literal) ;) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" else (compound_statement "{\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" { (if_statement "if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;" if (parenthesized_expression "(((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38))))" ( (binary_expression "((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))" (parenthesized_expression "((DAT_00083c2c != 3) || (param_2 != (char *)0x2))" ( (binary_expression "(DAT_00083c2c != 3) || (param_2 != (char *)0x2)" (parenthesized_expression "(DAT_00083c2c != 3)" ( (binary_expression "DAT_00083c2c != 3" identifier != number_literal) )) || (parenthesized_expression "(param_2 != (char *)0x2)" ( (binary_expression "param_2 != (char *)0x2" identifier != (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))" ( (parenthesized_expression "(param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38))" ( (binary_expression "param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)" (binary_expression "param_1[0xc] != '\x02'" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) != (char_literal "'\x02'" ' escape_sequence ')) || (parenthesized_expression "(*(int *)(param_1 + 8) != 0x38)" ( (binary_expression "*(int *)(param_1 + 8) != 0x38" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (expression_statement "DAT_00083c2c = 4;" (assignment_expression "DAT_00083c2c = 4" identifier = number_literal) ;) (expression_statement "DAT_00083c60 = 1;" (assignment_expression "DAT_00083c60 = 1" identifier = number_literal) ;) }))))))) }) (else_clause "else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }" else (compound_statement "{\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }" { (labeled_statement "LAB_0002f4d8:\n    DAT_00083c2c = 0;" statement_identifier : (expression_statement "DAT_00083c2c = 0;" (assignment_expression "DAT_00083c2c = 0" identifier = number_literal) ;)) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" identifier = number_literal) ;) }))) (expression_statement "piStack_38 = (int *)&param_2;" (assignment_expression "piStack_38 = (int *)&param_2" identifier = (cast_expression "(int *)&param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&param_2" & identifier))) ;) (expression_statement "local_3c = param_1;" (assignment_expression "local_3c = param_1" identifier = identifier) ;) (expression_statement "iVar5 = FUN_0001f7b0();" (assignment_expression "iVar5 = FUN_0001f7b0()" identifier = (call_expression "FUN_0001f7b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "bVar23 = param_1[0xc];" (assignment_expression "bVar23 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }" if (parenthesized_expression "(bVar23 == 7)" ( (binary_expression "bVar23 == 7" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }" { (if_statement "if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }" if (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" ( (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }" { (expression_statement "local_3c = *(char **)param_1;" (assignment_expression "local_3c = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar5 = FUN_000396c0();" (assignment_expression "iVar5 = FUN_000396c0()" identifier = (call_expression "FUN_000396c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar5 + 0xc) == '\x06')" ( (binary_expression "*(char *)(iVar5 + 0xc) == '\x06'" (pointer_expression "*(char *)(iVar5 + 0xc)" * (cast_expression "(char *)(iVar5 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }" { (expression_statement "local_3c = *(char **)param_1;" (assignment_expression "local_3c = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar5 = FUN_000396c0();" (assignment_expression "iVar5 = FUN_000396c0()" identifier = (call_expression "FUN_000396c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }" if (parenthesized_expression "(0 < *(int *)(iVar5 + 8))" ( (binary_expression "0 < *(int *)(iVar5 + 8)" number_literal < (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) ))))) )) (compound_statement "{\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }" { (expression_statement "local_3c = *(char **)param_1;" (assignment_expression "local_3c = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "param_1 = (char *)FUN_000396c0();" (assignment_expression "param_1 = (char *)FUN_000396c0()" identifier = (cast_expression "(char *)FUN_000396c0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000396c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;) (expression_statement "iVar5 = *(int *)(param_1 + 8);" (assignment_expression "iVar5 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "puVar10 = &DAT_00084880;" (assignment_expression "puVar10 = &DAT_00084880" identifier = (pointer_expression "&DAT_00084880" & identifier)) ;) (do_statement "do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);" do (compound_statement "{\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            }" { (expression_statement "uVar15 = *puVar10;" (assignment_expression "uVar15 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar13 = puVar10 + 1;" (assignment_expression "puVar13 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar10 = (ushort)(uVar7 + (ushort)~uVar15);" (assignment_expression "*puVar10 = (ushort)(uVar7 + (ushort)~uVar15)" (pointer_expression "*puVar10" * identifier) = (call_expression "(ushort)(uVar7 + (ushort)~uVar15)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar7 + (ushort)~uVar15)" ( (binary_expression "uVar7 + (ushort)~uVar15" identifier + (cast_expression "(ushort)~uVar15" ( (type_descriptor "ushort" type_identifier) ) (unary_expression "~uVar15" ~ identifier))) )))) ;) (expression_statement "uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;" (assignment_expression "uVar7 = uVar7 + (ushort)~uVar15 >> 0x10" identifier = (binary_expression "uVar7 + (ushort)~uVar15 >> 0x10" (binary_expression "uVar7 + (ushort)~uVar15" identifier + (cast_expression "(ushort)~uVar15" ( (type_descriptor "ushort" type_identifier) ) (unary_expression "~uVar15" ~ identifier))) >> number_literal)) ;) (expression_statement "puVar10 = puVar13;" (assignment_expression "puVar10 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(&DAT_00084880 + iVar5 != puVar13)" ( (binary_expression "&DAT_00084880 + iVar5 != puVar13" (binary_expression "&DAT_00084880 + iVar5" (pointer_expression "&DAT_00084880" & identifier) + identifier) != identifier) )) ;) (expression_statement "local_24 = (int *)0xffffffff;" (assignment_expression "local_24 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002f544;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002fc48;" goto statement_identifier ;) })) })) })) (expression_statement "puVar6 = (undefined4 *)*local_24;" (assignment_expression "puVar6 = (undefined4 *)*local_24" identifier = (cast_expression "(undefined4 *)*local_24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier))) ;) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }" if (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }" { (labeled_statement "LAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;" statement_identifier : (expression_statement "piStack_38 = (int *)0x5bce0;" (assignment_expression "piStack_38 = (int *)0x5bce0" identifier = (cast_expression "(int *)0x5bce0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_0002a980();" (call_expression "FUN_0002a980()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002f8df;" goto statement_identifier ;) })) (labeled_statement "LAB_0002f7a0:\n    local_24 = (int *)0x0;" statement_identifier : (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }" statement_identifier : (if_statement "if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }" if (parenthesized_expression "((puVar6[5] & 0x103) == 1)" ( (binary_expression "(puVar6[5] & 0x103) == 1" (parenthesized_expression "(puVar6[5] & 0x103)" ( (binary_expression "puVar6[5] & 0x103" (subscript_expression "puVar6[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }" { (expression_statement "piStack_38 = (int *)0x5bc90;" (assignment_expression "piStack_38 = (int *)0x5bc90" identifier = (cast_expression "(int *)0x5bc90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar3 = (char *)*puVar6;" (assignment_expression "pcVar3 = (char *)*puVar6" identifier = (cast_expression "(char *)*puVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piStack_38 = (int *)pcVar3;" (assignment_expression "piStack_38 = (int *)pcVar3" identifier = (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0002a980();" (call_expression "FUN_0002a980()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" identifier = identifier) ;) (expression_statement "pcVar3 = (char *)FUN_000238d0();" (assignment_expression "pcVar3 = (char *)FUN_000238d0()" identifier = (cast_expression "(char *)FUN_000238d0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000238d0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (param_3 != (char *)0x47) goto LAB_0002f730;" if (parenthesized_expression "(param_3 != (char *)0x47)" ( (binary_expression "param_3 != (char *)0x47" identifier != (cast_expression "(char *)0x47" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002f730;" goto statement_identifier ;)) (if_statement "if (bVar23 == 2) goto LAB_0002f604;" if (parenthesized_expression "(bVar23 == 2)" ( (binary_expression "bVar23 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0002f604;" goto statement_identifier ;)) (if_statement "if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" if (parenthesized_expression "(bVar23 != 6)" ( (binary_expression "bVar23 != 6" identifier != number_literal) )) (compound_statement "{\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" { (expression_statement "local_3c = (char *)0x47;" (assignment_expression "local_3c = (char *)0x47" identifier = (cast_expression "(char *)0x47" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0002f390(param_1,param_2,*local_20,pcVar3);" (call_expression "FUN_0002f390(param_1,param_2,*local_20,pcVar3)" identifier (argument_list "(param_1,param_2,*local_20,pcVar3)" ( identifier , identifier , (pointer_expression "*local_20" * identifier) , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "iStack_30 = *(int *)(param_1 + 8);" (assignment_expression "iStack_30 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = (char *)(iStack_30 * 2);" (assignment_expression "pcVar14 = (char *)(iStack_30 * 2)" identifier = (cast_expression "(char *)(iStack_30 * 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_30 * 2)" ( (binary_expression "iStack_30 * 2" identifier * number_literal) )))) ;) (if_statement "if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }" if (parenthesized_expression "(param_2 < (char *)(iStack_30 * 2))" ( (binary_expression "param_2 < (char *)(iStack_30 * 2)" identifier < (cast_expression "(char *)(iStack_30 * 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_30 * 2)" ( (binary_expression "iStack_30 * 2" identifier * number_literal) )))) )) (compound_statement "{\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }" { (expression_statement "uVar7 = (uint)param_2 >> 1;" (assignment_expression "uVar7 = (uint)param_2 >> 1" identifier = (binary_expression "(uint)param_2 >> 1" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) (if_statement "if (uVar7 != 0) goto LAB_0002f669;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002f669;" goto statement_identifier ;)) (if_statement "if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }" if (parenthesized_expression "(param_2 == (char *)0x1)" ( (binary_expression "param_2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }" { (expression_statement "local_20 = (undefined4 *)&DAT_00084880;" (assignment_expression "local_20 = (undefined4 *)&DAT_00084880" identifier = (cast_expression "(undefined4 *)&DAT_00084880" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00084880" & identifier))) ;) (expression_statement "uVar15 = (short)(DAT_00084880 << 8) >> 0xf;" (assignment_expression "uVar15 = (short)(DAT_00084880 << 8) >> 0xf" identifier = (binary_expression "(short)(DAT_00084880 << 8) >> 0xf" (cast_expression "(short)(DAT_00084880 << 8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(DAT_00084880 << 8)" ( (binary_expression "DAT_00084880 << 8" identifier << number_literal) ))) >> number_literal)) ;) (if_statement "if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;" if (parenthesized_expression "(((DAT_00084880 ^ uVar15) & 0xff00) != 0)" ( (binary_expression "((DAT_00084880 ^ uVar15) & 0xff00) != 0" (parenthesized_expression "((DAT_00084880 ^ uVar15) & 0xff00)" ( (binary_expression "(DAT_00084880 ^ uVar15) & 0xff00" (parenthesized_expression "(DAT_00084880 ^ uVar15)" ( (binary_expression "DAT_00084880 ^ uVar15" identifier ^ identifier) )) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0002fb1d;" goto statement_identifier ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);" do (compound_statement "{\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (iStack_30 <= iVar5) goto LAB_0002fb38;" if (parenthesized_expression "(iStack_30 <= iVar5)" ( (binary_expression "iStack_30 <= iVar5" identifier <= identifier) )) (goto_statement "goto LAB_0002fb38;" goto statement_identifier ;)) }) while (parenthesized_expression "((&DAT_00084880)[iVar5] == uVar15)" ( (binary_expression "(&DAT_00084880)[iVar5] == uVar15" (subscript_expression "(&DAT_00084880)[iVar5]" (parenthesized_expression "(&DAT_00084880)" ( (pointer_expression "&DAT_00084880" & identifier) )) [ identifier ]) == identifier) )) ;) (expression_statement "pcVar18 = (char *)0x1;" (assignment_expression "pcVar18 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }" else (compound_statement "{\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }" { (labeled_statement "LAB_0002fb1d:\n        pcVar14 = param_2;" statement_identifier : (expression_statement "pcVar14 = param_2;" (assignment_expression "pcVar14 = param_2" identifier = identifier) ;)) (if_statement "if (iStack_30 < 1) goto LAB_0002fb25;" if (parenthesized_expression "(iStack_30 < 1)" ( (binary_expression "iStack_30 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0002fb25;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0002fb98;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }" else (compound_statement "{\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }" { (if_statement "if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" if (parenthesized_expression "(bVar23 < 2)" ( (binary_expression "bVar23 < 2" identifier < number_literal) )) (compound_statement "{\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }" { (expression_statement "piStack_38 = (int *)0x5bc48;" (assignment_expression "piStack_38 = (int *)0x5bc48" identifier = (cast_expression "(int *)0x5bc48" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002f5bf:\n      param_1[8] = '\0';" statement_identifier : (expression_statement "param_1[8] = '\0';" (assignment_expression "param_1[8] = '\0'" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "param_1[9] = '\0';" (assignment_expression "param_1[9] = '\0'" (subscript_expression "param_1[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_1[10] = '\0';" (assignment_expression "param_1[10] = '\0'" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_1[0xb] = '\0';" (assignment_expression "param_1[0xb] = '\0'" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }" if (parenthesized_expression "((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "(undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150" (cast_expression "(undefined *)*local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier)) == (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal)) )) (compound_statement "{\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }" { (labeled_statement "LAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;" statement_identifier : (expression_statement "DAT_000848ec = DAT_000848ec + (int)param_2;" (assignment_expression "DAT_000848ec = DAT_000848ec + (int)param_2" identifier = (binary_expression "DAT_000848ec + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (return_statement "return;" return ;) })) }) (else_clause "else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" else (compound_statement "{\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" { (if_statement "if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }" if (parenthesized_expression "(bVar23 == 6)" ( (binary_expression "bVar23 == 6" identifier == number_literal) )) (compound_statement "{\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }" { (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }" if (parenthesized_expression "(0 < *(int *)(param_1 + 8))" ( (binary_expression "0 < *(int *)(param_1 + 8)" number_literal < (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }" { (labeled_statement "LAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;" statement_identifier : (expression_statement "puVar6 = (undefined4 *)*piVar8;" (assignment_expression "puVar6 = (undefined4 *)*piVar8" identifier = (cast_expression "(undefined4 *)*piVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;)) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;" if (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (goto_statement "goto LAB_0002f8c1;" goto statement_identifier ;)) (expression_statement "bVar23 = 6;" (assignment_expression "bVar23 = 6" identifier = number_literal) ;) (goto_statement "goto LAB_0002f7a8;" goto statement_identifier ;) })) (labeled_statement "LAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;" statement_identifier : (expression_statement "piStack_38 = (int *)0x59ac4;" (assignment_expression "piStack_38 = (int *)0x59ac4" identifier = (cast_expression "(int *)0x59ac4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_24 = piVar8;" (assignment_expression "local_24 = piVar8" identifier = identifier) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_0002a980();" (call_expression "FUN_0002a980()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002f5bf;" goto statement_identifier ;) })) (if_statement "if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }" if (parenthesized_expression "(bVar23 == 5)" ( (binary_expression "bVar23 == 5" identifier == number_literal) )) (compound_statement "{\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }" { (expression_statement "piStack_38 = (int *)0x5bc6c;" (assignment_expression "piStack_38 = (int *)0x5bc6c" identifier = (cast_expression "(int *)0x5bc6c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar6 = (undefined4 *)*local_24;" (assignment_expression "puVar6 = (undefined4 *)*local_24" identifier = (cast_expression "(undefined4 *)*local_24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier))) ;) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }" if (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }" { (labeled_statement "LAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;" statement_identifier : (if_statement "if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;" if (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" ( (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002f8df;" goto statement_identifier ;))) (goto_statement "goto LAB_0002f8c1;" goto statement_identifier ;) })) }) (else_clause "else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }" else (compound_statement "{\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }" { (expression_statement "puVar6 = (undefined4 *)*local_24;" (assignment_expression "puVar6 = (undefined4 *)*local_24" identifier = (cast_expression "(undefined4 *)*local_24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier))) ;) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }" if (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }" { (if_statement "if (bVar23 != 2) goto LAB_0002f8c1;" if (parenthesized_expression "(bVar23 != 2)" ( (binary_expression "bVar23 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0002f8c1;" goto statement_identifier ;)) (goto_statement "goto LAB_0002f8b6;" goto statement_identifier ;) })) (if_statement "if (bVar23 != 2) goto LAB_0002f7a0;" if (parenthesized_expression "(bVar23 != 2)" ( (binary_expression "bVar23 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0002f7a0;" goto statement_identifier ;)) }))) (if_statement "if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" ( (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }" { (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar23 = 2;" (assignment_expression "bVar23 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0002f7a8;" goto statement_identifier ;) })) }))) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" identifier = identifier) ;) (expression_statement "pcVar3 = (char *)FUN_000238d0();" (assignment_expression "pcVar3 = (char *)FUN_000238d0()" identifier = (cast_expression "(char *)FUN_000238d0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000238d0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" if (parenthesized_expression "(param_3 != (char *)0x47)" ( (binary_expression "param_3 != (char *)0x47" identifier != (cast_expression "(char *)0x47" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" { (labeled_statement "LAB_0002f730:\n      local_3c = param_3;" statement_identifier : (expression_statement "local_3c = param_3;" (assignment_expression "local_3c = param_3" identifier = identifier) ;)) (expression_statement "FUN_0002f390(param_1,param_2,*local_20,pcVar3);" (call_expression "FUN_0002f390(param_1,param_2,*local_20,pcVar3)" identifier (argument_list "(param_1,param_2,*local_20,pcVar3)" ( identifier , identifier , (pointer_expression "*local_20" * identifier) , identifier ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);" statement_identifier : (expression_statement "piVar8 = *(int **)(param_1 + 8);" (assignment_expression "piVar8 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }" if (parenthesized_expression "(param_2 < (char *)0x5)" ( (binary_expression "param_2 < (char *)0x5" identifier < (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }" { (expression_statement "piVar9 = piVar8;" (assignment_expression "piVar9 = piVar8" identifier = identifier) ;) (if_statement "if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }" if (parenthesized_expression "(param_2 != (char *)0x4)" ( (binary_expression "param_2 != (char *)0x4" identifier != (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }" { (expression_statement "local_20 = (undefined4 *)((int)param_2 * 8);" (assignment_expression "local_20 = (undefined4 *)((int)param_2 * 8)" identifier = (cast_expression "(undefined4 *)((int)param_2 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 * 8)" ( (binary_expression "(int)param_2 * 8" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "uVar7 = -1 << ((byte)local_20 & 0x1f);" (assignment_expression "uVar7 = -1 << ((byte)local_20 & 0x1f)" identifier = (binary_expression "-1 << ((byte)local_20 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_20 & 0x1f)" ( (binary_expression "(byte)local_20 & 0x1f" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar9 = (int *)(~uVar7 & (uint)piVar8);" (assignment_expression "piVar9 = (int *)(~uVar7 & (uint)piVar8)" identifier = (cast_expression "(int *)(~uVar7 & (uint)piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~uVar7 & (uint)piVar8)" ( (binary_expression "~uVar7 & (uint)piVar8" (unary_expression "~uVar7" ~ identifier) & (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "local_24 = piVar9;" (assignment_expression "local_24 = piVar9" identifier = identifier) ;) (if_statement "if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }" if (parenthesized_expression "((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0))))" ( (binary_expression "(((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))" (parenthesized_expression "(((uint)piVar8 & uVar7) != 0)" ( (binary_expression "((uint)piVar8 & uVar7) != 0" (parenthesized_expression "((uint)piVar8 & uVar7)" ( (binary_expression "(uint)piVar8 & uVar7" (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != number_literal) )) && (parenthesized_expression "((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))" ( (parenthesized_expression "(((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0))" ( (binary_expression "((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)" (binary_expression "((uint)piVar8 & uVar7) != uVar7" (parenthesized_expression "((uint)piVar8 & uVar7)" ( (binary_expression "(uint)piVar8 & uVar7" (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != identifier) || (parenthesized_expression "((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)" ( (binary_expression "(1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0" (parenthesized_expression "(1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8)" ( (binary_expression "1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8" (binary_expression "1 << ((byte)local_20 - 1 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_20 - 1 & 0x1f)" ( (binary_expression "(byte)local_20 - 1 & 0x1f" (binary_expression "(byte)local_20 - 1" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal) ))) & (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) ))) )) ))) )) (compound_statement "{\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }" { (expression_statement "piStack_38 = (int *)0x5bcc0;" (assignment_expression "piStack_38 = (int *)0x5bcc0" identifier = (cast_expression "(int *)0x5bcc0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar9 = local_24;" (assignment_expression "piVar9 = local_24" identifier = identifier) ;) (expression_statement "piStack_34 = local_24;" (assignment_expression "piStack_34 = local_24" identifier = identifier) ;) (expression_statement "piStack_38 = piVar8;" (assignment_expression "piStack_38 = piVar8" identifier = identifier) ;) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" identifier = identifier) ;) (expression_statement "piStack_38 = piVar9;" (assignment_expression "piStack_38 = piVar9" identifier = identifier) ;) (expression_statement "piStack_34 = (int *)param_2;" (assignment_expression "piStack_34 = (int *)param_2" identifier = (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }" if (parenthesized_expression "((param_1[0xd] & 1U) == 0)" ( (binary_expression "(param_1[0xd] & 1U) == 0" (parenthesized_expression "(param_1[0xd] & 1U)" ( (binary_expression "param_1[0xd] & 1U" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }" { (expression_statement "uVar4 = 0xffff;" (assignment_expression "uVar4 = 0xffff" identifier = number_literal) ;) (expression_statement "local_24 = (int *)0xffffffff;" (assignment_expression "local_24 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }" else (compound_statement "{\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }" if (parenthesized_expression "((int)piVar8 < 0)" ( (binary_expression "(int)piVar8 < 0" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }" { (expression_statement "pcVar14 = (char *)0x4;" (assignment_expression "pcVar14 = (char *)0x4" identifier = (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_30 = 2;" (assignment_expression "iStack_30 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }" else (compound_statement "{\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }" { (expression_statement "pcVar14 = (char *)0x6;" (assignment_expression "pcVar14 = (char *)0x6" identifier = (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_30 = 3;" (assignment_expression "iStack_30 = 3" identifier = number_literal) ;) (expression_statement "DAT_00084884 = uVar4;" (assignment_expression "DAT_00084884 = uVar4" identifier = identifier) ;) }))) (expression_statement "local_20 = (undefined4 *)&DAT_00084880;" (assignment_expression "local_20 = (undefined4 *)&DAT_00084880" identifier = (cast_expression "(undefined4 *)&DAT_00084880" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00084880" & identifier))) ;) (expression_statement "_DAT_00084880 = piVar8;" (assignment_expression "_DAT_00084880 = piVar8" identifier = identifier) ;) (expression_statement "param_1[0xc] = '\x06';" (assignment_expression "param_1[0xc] = '\x06'" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (char_literal "'\x06'" ' escape_sequence ')) ;) (expression_statement "*(int *)(param_1 + 8) = iStack_30;" (assignment_expression "*(int *)(param_1 + 8) = iStack_30" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) (if_statement "if (pcVar14 <= param_2) goto LAB_0002f698;" if (parenthesized_expression "(pcVar14 <= param_2)" ( (binary_expression "pcVar14 <= param_2" identifier <= identifier) )) (goto_statement "goto LAB_0002f698;" goto statement_identifier ;)) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "pcVar18 = (char *)0x5;" (assignment_expression "pcVar18 = (char *)0x5" identifier = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0002f669:\n    iVar5 = uVar7 - 1;" statement_identifier : (expression_statement "iVar5 = uVar7 - 1;" (assignment_expression "iVar5 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;)) (expression_statement "psVar1 = (short *)(&DAT_00084880 + iVar5);" (assignment_expression "psVar1 = (short *)(&DAT_00084880 + iVar5)" identifier = (cast_expression "(short *)(&DAT_00084880 + iVar5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00084880 + iVar5)" ( (binary_expression "&DAT_00084880 + iVar5" (pointer_expression "&DAT_00084880" & identifier) + identifier) )))) ;) (expression_statement "local_20 = (undefined4 *)CONCAT22(8,*psVar1);" (assignment_expression "local_20 = (undefined4 *)CONCAT22(8,*psVar1)" identifier = (cast_expression "(undefined4 *)CONCAT22(8,*psVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(8,*psVar1)" identifier (argument_list "(8,*psVar1)" ( number_literal , (pointer_expression "*psVar1" * identifier) ))))) ;) (do_statement "do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);" do (compound_statement "{\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar14 = pcVar18;" (assignment_expression "pcVar14 = pcVar18" identifier = identifier) ;) (if_statement "if (iStack_30 <= iVar5) goto LAB_0002f698;" if (parenthesized_expression "(iStack_30 <= iVar5)" ( (binary_expression "iStack_30 <= iVar5" identifier <= identifier) )) (goto_statement "goto LAB_0002f698;" goto statement_identifier ;)) }) while (parenthesized_expression "((&DAT_00084880)[iVar5] == *psVar1 >> 0xf)" ( (binary_expression "(&DAT_00084880)[iVar5] == *psVar1 >> 0xf" (subscript_expression "(&DAT_00084880)[iVar5]" (parenthesized_expression "(&DAT_00084880)" ( (pointer_expression "&DAT_00084880" & identifier) )) [ identifier ]) == (binary_expression "*psVar1 >> 0xf" (pointer_expression "*psVar1" * identifier) >> number_literal)) )) ;) (labeled_statement "LAB_0002fb98:\n    local_3c = (char *)0x5;" statement_identifier : (expression_statement "local_3c = (char *)0x5;" (assignment_expression "local_3c = (char *)0x5" identifier = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);" (assignment_expression "local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" identifier = (cast_expression "(char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" identifier (argument_list "(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" ( number_literal , (string_literal ""bignum truncated to %d byte"" " string_content ") , (string_literal ""bignum truncated to %d bytes"" " string_content ") , identifier ))))) ;) (expression_statement "piStack_38 = (int *)pcVar18;" (assignment_expression "piStack_38 = (int *)pcVar18" identifier = (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iStack_30 = extraout_ECX;" (assignment_expression "iStack_30 = extraout_ECX" identifier = identifier) ;) (expression_statement "pcVar14 = param_2;" (assignment_expression "pcVar14 = param_2" identifier = identifier) ;) }))) (labeled_statement "LAB_0002fb25:\n  pcVar18 = param_2;" statement_identifier : (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;)) (if_statement "if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }" if (parenthesized_expression "(param_2 == (char *)0x1)" ( (binary_expression "param_2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }" { (labeled_statement "LAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;" statement_identifier : (expression_statement "local_20 = (undefined4 *)&DAT_00084880;" (assignment_expression "local_20 = (undefined4 *)&DAT_00084880" identifier = (cast_expression "(undefined4 *)&DAT_00084880" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00084880" & identifier))) ;)) (expression_statement "piStack_34 = (int *)0x1;" (assignment_expression "piStack_34 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);" (assignment_expression "piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff)" identifier = (cast_expression "(int *)((uint)_DAT_00084880 & 0xffff)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)_DAT_00084880 & 0xffff)" ( (binary_expression "(uint)_DAT_00084880 & 0xffff" (cast_expression "(uint)_DAT_00084880" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" identifier = identifier) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0002f698:\n  piVar8 = local_24;" statement_identifier : (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;)) (if_statement "if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(((uint)pcVar18 & 1) == 0)" ( (binary_expression "((uint)pcVar18 & 1) == 0" (parenthesized_expression "((uint)pcVar18 & 1)" ( (binary_expression "(uint)pcVar18 & 1" (cast_expression "(uint)pcVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }" { (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" identifier = identifier) ;) (if_statement "if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }" if (parenthesized_expression "(DAT_00083c1c == 0)" ( (binary_expression "DAT_00083c1c == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }" { (expression_statement "pcVar17 = pcVar3;" (assignment_expression "pcVar17 = pcVar3" identifier = identifier) ;) (if_statement "if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }" if (parenthesized_expression "((char *)0x1 < pcVar14)" ( (binary_expression "(char *)0x1 < pcVar14" (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }" { (expression_statement "puVar10 = &DAT_00084880;" (assignment_expression "puVar10 = &DAT_00084880" identifier = (pointer_expression "&DAT_00084880" & identifier)) ;) (do_statement "do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);" do (compound_statement "{\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        }" { (expression_statement "piStack_38 = (int *)(uint)*puVar10;" (assignment_expression "piStack_38 = (int *)(uint)*puVar10" identifier = (binary_expression "(int *)(uint)*puVar10" (cast_expression "(int *)(uint)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = local_3c + 2;" (assignment_expression "pcVar12 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_2 = param_2 + -2;" (assignment_expression "param_2 = param_2 + -2" identifier = (binary_expression "param_2 + -2" identifier + number_literal)) ;) (expression_statement "local_3c = pcVar12;" (assignment_expression "local_3c = pcVar12" identifier = identifier) ;) (expression_statement "pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;" (assignment_expression "pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" identifier = (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe)" identifier + (parenthesized_expression "((uint)(pcVar14 + -2) & 0xfffffffe)" ( (binary_expression "(uint)(pcVar14 + -2) & 0xfffffffe" (call_expression "(uint)(pcVar14 + -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar14 + -2)" ( (binary_expression "pcVar14 + -2" identifier + number_literal) ))) & number_literal) ))) + number_literal)) ;) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2)" ( (binary_expression "pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" identifier != (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe)" identifier + (parenthesized_expression "((uint)(pcVar14 + -2) & 0xfffffffe)" ( (binary_expression "(uint)(pcVar14 + -2) & 0xfffffffe" (call_expression "(uint)(pcVar14 + -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar14 + -2)" ( (binary_expression "pcVar14 + -2" identifier + number_literal) ))) & number_literal) ))) + number_literal)) )) ;) })) (while_statement "while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }" while (parenthesized_expression "(local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18)" ( (comma_expression "local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18" (assignment_expression "local_3c = pcVar17" identifier = identifier) , (comma_expression "piVar9 = local_24, (char *)0x1 < pcVar18" (assignment_expression "piVar9 = local_24" identifier = identifier) , (binary_expression "(char *)0x1 < pcVar18" (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier))) )) (compound_statement "{\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }" { (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_38 = local_24;" (assignment_expression "piStack_38 = local_24" identifier = identifier) ;) (expression_statement "pcVar17 = local_3c + 2;" (assignment_expression "pcVar17 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "local_24 = piVar8;" (assignment_expression "local_24 = piVar8" identifier = identifier) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_2 = param_2 + -2;" (assignment_expression "param_2 = param_2 + -2" identifier = (binary_expression "param_2 + -2" identifier + number_literal)) ;) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;) (expression_statement "local_24 = piVar9;" (assignment_expression "local_24 = piVar9" identifier = identifier) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) })) }) (else_clause "else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }" else (compound_statement "{\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }" { (while_statement "while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }" while (parenthesized_expression "(pcVar14 < pcVar18)" ( (binary_expression "pcVar14 < pcVar18" identifier < identifier) )) (compound_statement "{\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }" { (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_38 = piVar8;" (assignment_expression "piStack_38 = piVar8" identifier = identifier) ;) (expression_statement "pcVar3 = local_3c + 2;" (assignment_expression "pcVar3 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_2 = param_2 + -2;" (assignment_expression "param_2 = param_2 + -2" identifier = (binary_expression "param_2 + -2" identifier + number_literal)) ;) (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" identifier = identifier) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) })) (expression_statement "puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));" (assignment_expression "puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe))" identifier = (cast_expression "(ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe))" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe))" ( (binary_expression "PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe)" identifier + (parenthesized_expression "((uint)pcVar14 & 0xfffffffe)" ( (binary_expression "(uint)pcVar14 & 0xfffffffe" (cast_expression "(uint)pcVar14" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }" if (parenthesized_expression "((char *)0x1 < pcVar14)" ( (binary_expression "(char *)0x1 < pcVar14" (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }" { (expression_statement "pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;" (assignment_expression "pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" identifier = (binary_expression "local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (binary_expression "local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe)" identifier + (parenthesized_expression "((uint)(pcVar14 + -2) & 0xfffffffe)" ( (binary_expression "(uint)(pcVar14 + -2) & 0xfffffffe" (call_expression "(uint)(pcVar14 + -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar14 + -2)" ( (binary_expression "pcVar14 + -2" identifier + number_literal) ))) & number_literal) ))) + number_literal)) ;) (do_statement "do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);" do (compound_statement "{\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        }" { (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "piStack_38 = (int *)(uint)*puVar10;" (assignment_expression "piStack_38 = (int *)(uint)*puVar10" identifier = (binary_expression "(int *)(uint)*puVar10" (cast_expression "(int *)(uint)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar14 = local_3c + 2;" (assignment_expression "pcVar14 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_3c = pcVar14;" (assignment_expression "local_3c = pcVar14" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar14 != pcVar3)" ( (binary_expression "pcVar14 != pcVar3" identifier != identifier) )) ;) })) }))) (return_statement "return;" return ;) })) (expression_statement "piStack_34 = (int *)0x5cc0c;" (assignment_expression "piStack_34 = (int *)0x5cc0c" identifier = (cast_expression "(int *)0x5cc0c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = "../../gas/read.c";" (assignment_expression "local_3c = "../../gas/read.c"" identifier = (string_literal ""../../gas/read.c"" " string_content ")) ;) (expression_statement "piStack_38 = (int *)0x1180;" (assignment_expression "piStack_38 = (int *)0x1180" identifier = (cast_expression "(int *)0x1180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0002aaa0();" (call_expression "FUN_0002aaa0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid emit_expr_with_reloc(expressionS *exp,uint nbytes,bfd_reloc_code_real_type reloc)\n\n{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  expressionS *peVar4;\n  char *pcVar5;\n  undefined2 uVar6;\n  int iVar7;\n  segT paVar8;\n  uint uVar9;\n  segT *ppaVar10;\n  segT *ppaVar11;\n  int iVar12;\n  ushort *puVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  ushort *puVar16;\n  char *pcVar17;\n  ushort uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_2c [8];\n  segT *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x2f3e9;\n  if (need_pass_2 != 0) {\n    return;\n  }\n  uVar21 = auStack_2c < (undefined1 *)0xc;\n  uVar23 = &stack0x00000000 == (undefined1 *)0x38;\n  frag_grow(nbytes);\n  dot_value = frag_now_fix();\n  iVar7 = 6;\n  local_20 = &frag_now;\n  dot_frag = frag_now;\n  local_24 = &now_seg;\n  pbVar2 = (byte *)now_seg->name;\n  pbVar14 = pbVar2;\n  pbVar19 = (byte *)".line";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    uVar21 = *pbVar14 < *pbVar19;\n    uVar23 = *pbVar14 == *pbVar19;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n  } while ((bool)uVar23);\n  bVar22 = false;\n  bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n  if (bVar24) {\n    if ((emit_expr_with_reloc::lexical_block_7::dwarf_line < 0) || (nbytes != 2)) {\n      bVar22 = nbytes < 4;\n      bVar24 = nbytes == 4;\n      if (bVar24) {\n        bVar22 = (byte)exp->field_0xc < 2;\n        bVar24 = exp->field_0xc == 2;\n        if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar22 = (byte)exp->field_0xc < 2;\n    bVar24 = exp->field_0xc == 2;\n    if (!bVar24) goto LAB_0002f490;\n    bVar22 = false;\n    bVar24 = (exp->X_add_number + 1U & 0xfffeffff) == 0;\n    if (!bVar24) goto LAB_0002f490;\n    local_20 = &frag_now;\n    listing_source_line(emit_expr_with_reloc::lexical_block_7::dwarf_line);\n    bVar22 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    bVar24 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = (byte *)(*local_24)->name;\n  }\n  else {\nLAB_0002f490:\n    emit_expr_with_reloc::lexical_block_7::dwarf_line = -1;\n    local_20 = &frag_now;\n  }\nLAB_0002f49a:\n  iVar7 = 7;\n  pbVar14 = (byte *)".debug";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar22 = *pbVar2 < *pbVar14;\n    bVar24 = *pbVar2 == *pbVar14;\n    pbVar2 = pbVar2 + (uint)bVar25 * -2 + 1;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);\n  if ((!bVar22 && !bVar24) == bVar22) {\n    if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 0) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 1) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;\n    dwarf_file_string = 0;\n  }\n  iVar7 = check_eh_frame(exp,&nbytes);\n  ppaVar10 = local_24;\n  if (iVar7 != 0) {\n    return;\n  }\n  bVar25 = exp->field_0xc;\n  if (bVar25 == 7) {\n    if (((exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&\n       (peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number)) {\n      exp = symbol_get_value_expression(exp->X_add_symbol);\n      ppaVar10 = local_24;\n      iVar7 = exp->X_add_number;\n      if (iVar7 < 1) goto LAB_0002fc48;\n      uVar9 = 1;\n      puVar13 = &generic_bignum;\n      do {\n        uVar18 = *puVar13;\n        puVar16 = puVar13 + 1;\n        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);\n        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;\n        puVar13 = puVar16;\n      } while (&generic_bignum + iVar7 != puVar16);\n      local_24 = (segT *)0xffffffff;\nLAB_0002f544:\n      paVar8 = *ppaVar10;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n      bVar25 = 6;\n    }\n    else {\n      paVar8 = *local_24;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }\nLAB_0002f7a0:\n      local_24 = (segT *)0x0;\n    }\nLAB_0002f7a8:\n    if ((paVar8->flags & 0x103) == 1) {\n      pcVar3 = (char *)dcgettext();\n      as_bad(pcVar3);\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) goto LAB_0002f730;\n    if (bVar25 == 2) goto LAB_0002f604;\n    if (bVar25 != 6) {\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE);\n      return;\n    }\n    iVar7 = exp->X_add_number;\n    uVar9 = iVar7 * 2;\n    if (nbytes < (uint)(iVar7 * 2)) {\n      uVar9 = nbytes >> 1;\n      uVar20 = nbytes;\n      if (uVar9 != 0) goto LAB_0002f669;\n      if (nbytes == 1) {\n        local_20 = (fragS **)&generic_bignum;\n        uVar18 = (short)(generic_bignum << 8) >> 0xf;\n        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar12 = 0;\n        do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);\n        uVar20 = 1;\n      }\n      else {\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar25 < 2) {\n      pcVar3 = (char *)dcgettext();\n      as_warn(pcVar3);\nLAB_0002f5bf:\n      exp->X_add_number = 0;\n      if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }\n    }\n    else {\n      if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }\n      if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }\n      if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) {\nLAB_0002f730:\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);\n      return;\n    }\nLAB_0002f604:\n    ppaVar10 = (segT *)exp->X_add_number;\n    if (nbytes < 5) {\n      ppaVar11 = ppaVar10;\n      if (nbytes != 4) {\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }\n      number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);\n      return;\n    }\n    if ((exp->field_0xd & 1) == 0) {\n      uVar6 = 0xffff;\n      local_24 = (segT *)0xffffffff;\n    }\n    else {\n      uVar6 = 0;\n      local_24 = (segT *)0x0;\n    }\n    if ((int)ppaVar10 < 0) {\n      uVar9 = 4;\n      iVar7 = 2;\n    }\n    else {\n      uVar9 = 6;\n      iVar7 = 3;\n      DAT_00084884 = uVar6;\n    }\n    local_20 = (fragS **)&generic_bignum;\n    _generic_bignum = ppaVar10;\n    exp->field_0xc = 6;\n    exp->X_add_number = iVar7;\n    uVar20 = nbytes;\n    if (uVar9 <= nbytes) goto LAB_0002f698;\n    uVar9 = 2;\n    uVar20 = 5;\nLAB_0002f669:\n    iVar12 = uVar9 - 1;\n    psVar1 = (short *)(&generic_bignum + iVar12);\n    local_20 = (fragS **)CONCAT22(8,*psVar1);\n    do {\n      iVar12 = iVar12 + 1;\n      uVar9 = uVar20;\n      if (iVar7 <= iVar12) goto LAB_0002f698;\n    } while ((&generic_bignum)[iVar12] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20);\n    as_warn(pcVar5);\n    uVar9 = nbytes;\n  }\nLAB_0002fb25:\n  uVar20 = nbytes;\n  if (nbytes == 1) {\nLAB_0002fb38:\n    local_20 = (fragS **)&generic_bignum;\n    number_to_chars_littleendian(pcVar3,(uint)_generic_bignum & 0xffff,1);\n    return;\n  }\nLAB_0002f698:\n  ppaVar10 = local_24;\n  if ((uVar20 & 1) == 0) {\n    if (target_big_endian == 0) {\n      if (1 < uVar9) {\n        puVar13 = &generic_bignum;\n        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;\n        pcVar17 = pcVar3;\n        do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);\n      }\n      while (ppaVar11 = local_24, 1 < uVar20) {\n        local_24 = ppaVar10;\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        ppaVar10 = local_24;\n        local_24 = ppaVar11;\n        uVar20 = nbytes;\n      }\n    }\n    else {\n      while (uVar9 < uVar20) {\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }\n      puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));\n      if (1 < uVar9) {\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }\n    }\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/read.c",0x1180,"emit_expr_with_reloc");\n}\n\n" comment comment (function_definition "void emit_expr_with_reloc(expressionS *exp,uint nbytes,bfd_reloc_code_real_type reloc)\n\n{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  expressionS *peVar4;\n  char *pcVar5;\n  undefined2 uVar6;\n  int iVar7;\n  segT paVar8;\n  uint uVar9;\n  segT *ppaVar10;\n  segT *ppaVar11;\n  int iVar12;\n  ushort *puVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  ushort *puVar16;\n  char *pcVar17;\n  ushort uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_2c [8];\n  segT *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x2f3e9;\n  if (need_pass_2 != 0) {\n    return;\n  }\n  uVar21 = auStack_2c < (undefined1 *)0xc;\n  uVar23 = &stack0x00000000 == (undefined1 *)0x38;\n  frag_grow(nbytes);\n  dot_value = frag_now_fix();\n  iVar7 = 6;\n  local_20 = &frag_now;\n  dot_frag = frag_now;\n  local_24 = &now_seg;\n  pbVar2 = (byte *)now_seg->name;\n  pbVar14 = pbVar2;\n  pbVar19 = (byte *)".line";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    uVar21 = *pbVar14 < *pbVar19;\n    uVar23 = *pbVar14 == *pbVar19;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n  } while ((bool)uVar23);\n  bVar22 = false;\n  bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n  if (bVar24) {\n    if ((emit_expr_with_reloc::lexical_block_7::dwarf_line < 0) || (nbytes != 2)) {\n      bVar22 = nbytes < 4;\n      bVar24 = nbytes == 4;\n      if (bVar24) {\n        bVar22 = (byte)exp->field_0xc < 2;\n        bVar24 = exp->field_0xc == 2;\n        if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar22 = (byte)exp->field_0xc < 2;\n    bVar24 = exp->field_0xc == 2;\n    if (!bVar24) goto LAB_0002f490;\n    bVar22 = false;\n    bVar24 = (exp->X_add_number + 1U & 0xfffeffff) == 0;\n    if (!bVar24) goto LAB_0002f490;\n    local_20 = &frag_now;\n    listing_source_line(emit_expr_with_reloc::lexical_block_7::dwarf_line);\n    bVar22 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    bVar24 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = (byte *)(*local_24)->name;\n  }\n  else {\nLAB_0002f490:\n    emit_expr_with_reloc::lexical_block_7::dwarf_line = -1;\n    local_20 = &frag_now;\n  }\nLAB_0002f49a:\n  iVar7 = 7;\n  pbVar14 = (byte *)".debug";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar22 = *pbVar2 < *pbVar14;\n    bVar24 = *pbVar2 == *pbVar14;\n    pbVar2 = pbVar2 + (uint)bVar25 * -2 + 1;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);\n  if ((!bVar22 && !bVar24) == bVar22) {\n    if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 0) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 1) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;\n    dwarf_file_string = 0;\n  }\n  iVar7 = check_eh_frame(exp,&nbytes);\n  ppaVar10 = local_24;\n  if (iVar7 != 0) {\n    return;\n  }\n  bVar25 = exp->field_0xc;\n  if (bVar25 == 7) {\n    if (((exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&\n       (peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number)) {\n      exp = symbol_get_value_expression(exp->X_add_symbol);\n      ppaVar10 = local_24;\n      iVar7 = exp->X_add_number;\n      if (iVar7 < 1) goto LAB_0002fc48;\n      uVar9 = 1;\n      puVar13 = &generic_bignum;\n      do {\n        uVar18 = *puVar13;\n        puVar16 = puVar13 + 1;\n        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);\n        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;\n        puVar13 = puVar16;\n      } while (&generic_bignum + iVar7 != puVar16);\n      local_24 = (segT *)0xffffffff;\nLAB_0002f544:\n      paVar8 = *ppaVar10;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n      bVar25 = 6;\n    }\n    else {\n      paVar8 = *local_24;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }\nLAB_0002f7a0:\n      local_24 = (segT *)0x0;\n    }\nLAB_0002f7a8:\n    if ((paVar8->flags & 0x103) == 1) {\n      pcVar3 = (char *)dcgettext();\n      as_bad(pcVar3);\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) goto LAB_0002f730;\n    if (bVar25 == 2) goto LAB_0002f604;\n    if (bVar25 != 6) {\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE);\n      return;\n    }\n    iVar7 = exp->X_add_number;\n    uVar9 = iVar7 * 2;\n    if (nbytes < (uint)(iVar7 * 2)) {\n      uVar9 = nbytes >> 1;\n      uVar20 = nbytes;\n      if (uVar9 != 0) goto LAB_0002f669;\n      if (nbytes == 1) {\n        local_20 = (fragS **)&generic_bignum;\n        uVar18 = (short)(generic_bignum << 8) >> 0xf;\n        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar12 = 0;\n        do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);\n        uVar20 = 1;\n      }\n      else {\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar25 < 2) {\n      pcVar3 = (char *)dcgettext();\n      as_warn(pcVar3);\nLAB_0002f5bf:\n      exp->X_add_number = 0;\n      if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }\n    }\n    else {\n      if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }\n      if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }\n      if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) {\nLAB_0002f730:\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);\n      return;\n    }\nLAB_0002f604:\n    ppaVar10 = (segT *)exp->X_add_number;\n    if (nbytes < 5) {\n      ppaVar11 = ppaVar10;\n      if (nbytes != 4) {\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }\n      number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);\n      return;\n    }\n    if ((exp->field_0xd & 1) == 0) {\n      uVar6 = 0xffff;\n      local_24 = (segT *)0xffffffff;\n    }\n    else {\n      uVar6 = 0;\n      local_24 = (segT *)0x0;\n    }\n    if ((int)ppaVar10 < 0) {\n      uVar9 = 4;\n      iVar7 = 2;\n    }\n    else {\n      uVar9 = 6;\n      iVar7 = 3;\n      DAT_00084884 = uVar6;\n    }\n    local_20 = (fragS **)&generic_bignum;\n    _generic_bignum = ppaVar10;\n    exp->field_0xc = 6;\n    exp->X_add_number = iVar7;\n    uVar20 = nbytes;\n    if (uVar9 <= nbytes) goto LAB_0002f698;\n    uVar9 = 2;\n    uVar20 = 5;\nLAB_0002f669:\n    iVar12 = uVar9 - 1;\n    psVar1 = (short *)(&generic_bignum + iVar12);\n    local_20 = (fragS **)CONCAT22(8,*psVar1);\n    do {\n      iVar12 = iVar12 + 1;\n      uVar9 = uVar20;\n      if (iVar7 <= iVar12) goto LAB_0002f698;\n    } while ((&generic_bignum)[iVar12] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20);\n    as_warn(pcVar5);\n    uVar9 = nbytes;\n  }\nLAB_0002fb25:\n  uVar20 = nbytes;\n  if (nbytes == 1) {\nLAB_0002fb38:\n    local_20 = (fragS **)&generic_bignum;\n    number_to_chars_littleendian(pcVar3,(uint)_generic_bignum & 0xffff,1);\n    return;\n  }\nLAB_0002f698:\n  ppaVar10 = local_24;\n  if ((uVar20 & 1) == 0) {\n    if (target_big_endian == 0) {\n      if (1 < uVar9) {\n        puVar13 = &generic_bignum;\n        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;\n        pcVar17 = pcVar3;\n        do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);\n      }\n      while (ppaVar11 = local_24, 1 < uVar20) {\n        local_24 = ppaVar10;\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        ppaVar10 = local_24;\n        local_24 = ppaVar11;\n        uVar20 = nbytes;\n      }\n    }\n    else {\n      while (uVar9 < uVar20) {\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }\n      puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));\n      if (1 < uVar9) {\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }\n    }\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/read.c",0x1180,"emit_expr_with_reloc");\n}" primitive_type (function_declarator "emit_expr_with_reloc(expressionS *exp,uint nbytes,bfd_reloc_code_real_type reloc)" identifier (parameter_list "(expressionS *exp,uint nbytes,bfd_reloc_code_real_type reloc)" ( (parameter_declaration "expressionS *exp" type_identifier (pointer_declarator "*exp" * identifier)) , (parameter_declaration "uint nbytes" type_identifier identifier) , (parameter_declaration "bfd_reloc_code_real_type reloc" type_identifier identifier) ))) (compound_statement "{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  expressionS *peVar4;\n  char *pcVar5;\n  undefined2 uVar6;\n  int iVar7;\n  segT paVar8;\n  uint uVar9;\n  segT *ppaVar10;\n  segT *ppaVar11;\n  int iVar12;\n  ushort *puVar13;\n  byte *pbVar14;\n  char *pcVar15;\n  ushort *puVar16;\n  char *pcVar17;\n  ushort uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  undefined1 uVar23;\n  bool bVar24;\n  byte bVar25;\n  undefined1 auStack_2c [8];\n  segT *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar25 = 0;\n  uStack_14 = 0x2f3e9;\n  if (need_pass_2 != 0) {\n    return;\n  }\n  uVar21 = auStack_2c < (undefined1 *)0xc;\n  uVar23 = &stack0x00000000 == (undefined1 *)0x38;\n  frag_grow(nbytes);\n  dot_value = frag_now_fix();\n  iVar7 = 6;\n  local_20 = &frag_now;\n  dot_frag = frag_now;\n  local_24 = &now_seg;\n  pbVar2 = (byte *)now_seg->name;\n  pbVar14 = pbVar2;\n  pbVar19 = (byte *)".line";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    uVar21 = *pbVar14 < *pbVar19;\n    uVar23 = *pbVar14 == *pbVar19;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n  } while ((bool)uVar23);\n  bVar22 = false;\n  bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;\n  if (bVar24) {\n    if ((emit_expr_with_reloc::lexical_block_7::dwarf_line < 0) || (nbytes != 2)) {\n      bVar22 = nbytes < 4;\n      bVar24 = nbytes == 4;\n      if (bVar24) {\n        bVar22 = (byte)exp->field_0xc < 2;\n        bVar24 = exp->field_0xc == 2;\n        if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar22 = (byte)exp->field_0xc < 2;\n    bVar24 = exp->field_0xc == 2;\n    if (!bVar24) goto LAB_0002f490;\n    bVar22 = false;\n    bVar24 = (exp->X_add_number + 1U & 0xfffeffff) == 0;\n    if (!bVar24) goto LAB_0002f490;\n    local_20 = &frag_now;\n    listing_source_line(emit_expr_with_reloc::lexical_block_7::dwarf_line);\n    bVar22 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    bVar24 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = (byte *)(*local_24)->name;\n  }\n  else {\nLAB_0002f490:\n    emit_expr_with_reloc::lexical_block_7::dwarf_line = -1;\n    local_20 = &frag_now;\n  }\nLAB_0002f49a:\n  iVar7 = 7;\n  pbVar14 = (byte *)".debug";\n  do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar22 = *pbVar2 < *pbVar14;\n    bVar24 = *pbVar2 == *pbVar14;\n    pbVar2 = pbVar2 + (uint)bVar25 * -2 + 1;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);\n  if ((!bVar22 && !bVar24) == bVar22) {\n    if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 0) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 1) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;\n    dwarf_file_string = 0;\n  }\n  iVar7 = check_eh_frame(exp,&nbytes);\n  ppaVar10 = local_24;\n  if (iVar7 != 0) {\n    return;\n  }\n  bVar25 = exp->field_0xc;\n  if (bVar25 == 7) {\n    if (((exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&\n       (peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number)) {\n      exp = symbol_get_value_expression(exp->X_add_symbol);\n      ppaVar10 = local_24;\n      iVar7 = exp->X_add_number;\n      if (iVar7 < 1) goto LAB_0002fc48;\n      uVar9 = 1;\n      puVar13 = &generic_bignum;\n      do {\n        uVar18 = *puVar13;\n        puVar16 = puVar13 + 1;\n        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);\n        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;\n        puVar13 = puVar16;\n      } while (&generic_bignum + iVar7 != puVar16);\n      local_24 = (segT *)0xffffffff;\nLAB_0002f544:\n      paVar8 = *ppaVar10;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n      bVar25 = 6;\n    }\n    else {\n      paVar8 = *local_24;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }\nLAB_0002f7a0:\n      local_24 = (segT *)0x0;\n    }\nLAB_0002f7a8:\n    if ((paVar8->flags & 0x103) == 1) {\n      pcVar3 = (char *)dcgettext();\n      as_bad(pcVar3);\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) goto LAB_0002f730;\n    if (bVar25 == 2) goto LAB_0002f604;\n    if (bVar25 != 6) {\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE);\n      return;\n    }\n    iVar7 = exp->X_add_number;\n    uVar9 = iVar7 * 2;\n    if (nbytes < (uint)(iVar7 * 2)) {\n      uVar9 = nbytes >> 1;\n      uVar20 = nbytes;\n      if (uVar9 != 0) goto LAB_0002f669;\n      if (nbytes == 1) {\n        local_20 = (fragS **)&generic_bignum;\n        uVar18 = (short)(generic_bignum << 8) >> 0xf;\n        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar12 = 0;\n        do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);\n        uVar20 = 1;\n      }\n      else {\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar25 < 2) {\n      pcVar3 = (char *)dcgettext();\n      as_warn(pcVar3);\nLAB_0002f5bf:\n      exp->X_add_number = 0;\n      if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }\n    }\n    else {\n      if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }\n      if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }\n      if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) {\nLAB_0002f730:\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);\n      return;\n    }\nLAB_0002f604:\n    ppaVar10 = (segT *)exp->X_add_number;\n    if (nbytes < 5) {\n      ppaVar11 = ppaVar10;\n      if (nbytes != 4) {\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }\n      number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);\n      return;\n    }\n    if ((exp->field_0xd & 1) == 0) {\n      uVar6 = 0xffff;\n      local_24 = (segT *)0xffffffff;\n    }\n    else {\n      uVar6 = 0;\n      local_24 = (segT *)0x0;\n    }\n    if ((int)ppaVar10 < 0) {\n      uVar9 = 4;\n      iVar7 = 2;\n    }\n    else {\n      uVar9 = 6;\n      iVar7 = 3;\n      DAT_00084884 = uVar6;\n    }\n    local_20 = (fragS **)&generic_bignum;\n    _generic_bignum = ppaVar10;\n    exp->field_0xc = 6;\n    exp->X_add_number = iVar7;\n    uVar20 = nbytes;\n    if (uVar9 <= nbytes) goto LAB_0002f698;\n    uVar9 = 2;\n    uVar20 = 5;\nLAB_0002f669:\n    iVar12 = uVar9 - 1;\n    psVar1 = (short *)(&generic_bignum + iVar12);\n    local_20 = (fragS **)CONCAT22(8,*psVar1);\n    do {\n      iVar12 = iVar12 + 1;\n      uVar9 = uVar20;\n      if (iVar7 <= iVar12) goto LAB_0002f698;\n    } while ((&generic_bignum)[iVar12] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20);\n    as_warn(pcVar5);\n    uVar9 = nbytes;\n  }\nLAB_0002fb25:\n  uVar20 = nbytes;\n  if (nbytes == 1) {\nLAB_0002fb38:\n    local_20 = (fragS **)&generic_bignum;\n    number_to_chars_littleendian(pcVar3,(uint)_generic_bignum & 0xffff,1);\n    return;\n  }\nLAB_0002f698:\n  ppaVar10 = local_24;\n  if ((uVar20 & 1) == 0) {\n    if (target_big_endian == 0) {\n      if (1 < uVar9) {\n        puVar13 = &generic_bignum;\n        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;\n        pcVar17 = pcVar3;\n        do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);\n      }\n      while (ppaVar11 = local_24, 1 < uVar20) {\n        local_24 = ppaVar10;\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        ppaVar10 = local_24;\n        local_24 = ppaVar11;\n        uVar20 = nbytes;\n      }\n    }\n    else {\n      while (uVar9 < uVar20) {\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }\n      puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));\n      if (1 < uVar9) {\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }\n    }\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/read.c",0x1180,"emit_expr_with_reloc");\n}" { (declaration "short *psVar1;" (sized_type_specifier "short" short) (pointer_declarator "*psVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "expressionS *peVar4;" type_identifier (pointer_declarator "*peVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined2 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "segT paVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "segT *ppaVar10;" type_identifier (pointer_declarator "*ppaVar10" * identifier) ;) (declaration "segT *ppaVar11;" type_identifier (pointer_declarator "*ppaVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "ushort *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "ushort *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "ushort uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "undefined1 uVar21;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "undefined1 uVar23;" type_identifier identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "byte bVar25;" type_identifier identifier ;) (declaration "undefined1 auStack_2c [8];" type_identifier (array_declarator "auStack_2c [8]" identifier [ number_literal ]) ;) (declaration "segT *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar25 = 0;" (assignment_expression "bVar25 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x2f3e9;" (assignment_expression "uStack_14 = 0x2f3e9" identifier = number_literal) ;) (if_statement "if (need_pass_2 != 0) {\n    return;\n  }" if (parenthesized_expression "(need_pass_2 != 0)" ( (binary_expression "need_pass_2 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar21 = auStack_2c < (undefined1 *)0xc;" (assignment_expression "uVar21 = auStack_2c < (undefined1 *)0xc" identifier = (binary_expression "auStack_2c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar23 = &stack0x00000000 == (undefined1 *)0x38;" (assignment_expression "uVar23 = &stack0x00000000 == (undefined1 *)0x38" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x38" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x38" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "frag_grow(nbytes);" (call_expression "frag_grow(nbytes)" identifier (argument_list "(nbytes)" ( identifier ))) ;) (expression_statement "dot_value = frag_now_fix();" (assignment_expression "dot_value = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" identifier = number_literal) ;) (expression_statement "local_20 = &frag_now;" (assignment_expression "local_20 = &frag_now" identifier = (pointer_expression "&frag_now" & identifier)) ;) (expression_statement "dot_frag = frag_now;" (assignment_expression "dot_frag = frag_now" identifier = identifier) ;) (expression_statement "local_24 = &now_seg;" (assignment_expression "local_24 = &now_seg" identifier = (pointer_expression "&now_seg" & identifier)) ;) (expression_statement "pbVar2 = (byte *)now_seg->name;" (assignment_expression "pbVar2 = (byte *)now_seg->name" identifier = (cast_expression "(byte *)now_seg->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "now_seg->name" identifier -> field_identifier))) ;) (expression_statement "pbVar14 = pbVar2;" (assignment_expression "pbVar14 = pbVar2" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)".line";" (assignment_expression "pbVar19 = (byte *)".line"" identifier = (cast_expression "(byte *)".line"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".line"" " string_content "))) ;) (do_statement "do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    uVar21 = *pbVar14 < *pbVar19;\n    uVar23 = *pbVar14 == *pbVar19;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n  } while ((bool)uVar23);" do (compound_statement "{\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    uVar21 = *pbVar14 < *pbVar19;\n    uVar23 = *pbVar14 == *pbVar19;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n    pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;\n  }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "uVar21 = *pbVar14 < *pbVar19;" (assignment_expression "uVar21 = *pbVar14 < *pbVar19" identifier = (binary_expression "*pbVar14 < *pbVar19" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "uVar23 = *pbVar14 == *pbVar19;" (assignment_expression "uVar23 = *pbVar14 == *pbVar19" identifier = (binary_expression "*pbVar14 == *pbVar19" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar23)" ( (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;" (assignment_expression "bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21" identifier = (binary_expression "(!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21" (parenthesized_expression "(!(bool)uVar21 && !(bool)uVar23)" ( (binary_expression "!(bool)uVar21 && !(bool)uVar23" (unary_expression "!(bool)uVar21" ! (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar23" ! (cast_expression "(bool)uVar23" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar24) {\n    if ((emit_expr_with_reloc::lexical_block_7::dwarf_line < 0) || (nbytes != 2)) {\n      bVar22 = nbytes < 4;\n      bVar24 = nbytes == 4;\n      if (bVar24) {\n        bVar22 = (byte)exp->field_0xc < 2;\n        bVar24 = exp->field_0xc == 2;\n        if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar22 = (byte)exp->field_0xc < 2;\n    bVar24 = exp->field_0xc == 2;\n    if (!bVar24) goto LAB_0002f490;\n    bVar22 = false;\n    bVar24 = (exp->X_add_number + 1U & 0xfffeffff) == 0;\n    if (!bVar24) goto LAB_0002f490;\n    local_20 = &frag_now;\n    listing_source_line(emit_expr_with_reloc::lexical_block_7::dwarf_line);\n    bVar22 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    bVar24 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = (byte *)(*local_24)->name;\n  }\n  else {\nLAB_0002f490:\n    emit_expr_with_reloc::lexical_block_7::dwarf_line = -1;\n    local_20 = &frag_now;\n  }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n    if ((emit_expr_with_reloc::lexical_block_7::dwarf_line < 0) || (nbytes != 2)) {\n      bVar22 = nbytes < 4;\n      bVar24 = nbytes == 4;\n      if (bVar24) {\n        bVar22 = (byte)exp->field_0xc < 2;\n        bVar24 = exp->field_0xc == 2;\n        if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar22 = (byte)exp->field_0xc < 2;\n    bVar24 = exp->field_0xc == 2;\n    if (!bVar24) goto LAB_0002f490;\n    bVar22 = false;\n    bVar24 = (exp->X_add_number + 1U & 0xfffeffff) == 0;\n    if (!bVar24) goto LAB_0002f490;\n    local_20 = &frag_now;\n    listing_source_line(emit_expr_with_reloc::lexical_block_7::dwarf_line);\n    bVar22 = (undefined1 *)0xffffffef < &stack0xffffffc4;\n    bVar24 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = (byte *)(*local_24)->name;\n  }" { (if_statement "if ((emit_expr_with_reloc::lexical_block_7::dwarf_line < 0) || (nbytes != 2)) {\n      bVar22 = nbytes < 4;\n      bVar24 = nbytes == 4;\n      if (bVar24) {\n        bVar22 = (byte)exp->field_0xc < 2;\n        bVar24 = exp->field_0xc == 2;\n        if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }" if (parenthesized_expression "((emit_expr_with_reloc::lexical_block_7::dwarf_line < 0) || (nbytes != 2))" ( (binary_expression "(emit_expr_with_reloc::lexical_block_7::dwarf_line < 0) || (nbytes != 2)" (parenthesized_expression "(emit_expr_with_reloc::lexical_block_7::dwarf_line < 0)" ( (binary_expression "emit_expr_with_reloc::lexical_block_7::dwarf_line < 0" identifier (ERROR "::lexical_block_7::dwarf_line" : : identifier : : identifier) < number_literal) )) || (parenthesized_expression "(nbytes != 2)" ( (binary_expression "nbytes != 2" identifier != number_literal) ))) )) (compound_statement "{\n      bVar22 = nbytes < 4;\n      bVar24 = nbytes == 4;\n      if (bVar24) {\n        bVar22 = (byte)exp->field_0xc < 2;\n        bVar24 = exp->field_0xc == 2;\n        if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }" { (expression_statement "bVar22 = nbytes < 4;" (assignment_expression "bVar22 = nbytes < 4" identifier = (binary_expression "nbytes < 4" identifier < number_literal)) ;) (expression_statement "bVar24 = nbytes == 4;" (assignment_expression "bVar24 = nbytes == 4" identifier = (binary_expression "nbytes == 4" identifier == number_literal)) ;) (if_statement "if (bVar24) {\n        bVar22 = (byte)exp->field_0xc < 2;\n        bVar24 = exp->field_0xc == 2;\n        if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }\n      }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n        bVar22 = (byte)exp->field_0xc < 2;\n        bVar24 = exp->field_0xc == 2;\n        if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }\n      }" { (expression_statement "bVar22 = (byte)exp->field_0xc < 2;" (assignment_expression "bVar22 = (byte)exp->field_0xc < 2" identifier = (binary_expression "(byte)exp->field_0xc < 2" (cast_expression "(byte)exp->field_0xc" ( (type_descriptor "byte" type_identifier) ) (field_expression "exp->field_0xc" identifier -> field_identifier)) < number_literal)) ;) (expression_statement "bVar24 = exp->field_0xc == 2;" (assignment_expression "bVar24 = exp->field_0xc == 2" identifier = (binary_expression "exp->field_0xc == 2" (field_expression "exp->field_0xc" identifier -> field_identifier) == number_literal)) ;) (if_statement "if (bVar24) {\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }" if (parenthesized_expression "(bVar24)" ( identifier )) (compound_statement "{\n          emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;\n          bVar22 = false;\n          bVar24 = emit_expr_with_reloc::lexical_block_7::dwarf_line == 0;\n          if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;\n        }" { (labeled_statement "emit_expr_with_reloc::lexical_block_7::dwarf_line = exp->X_add_number;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_7::dwarf_line = exp->X_add_number;" statement_identifier : (ERROR ":" :) (expression_statement "dwarf_line = exp->X_add_number;" (assignment_expression "dwarf_line = exp->X_add_number" identifier = (field_expression "exp->X_add_number" identifier -> field_identifier)) ;))) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (ERROR "bVar24 = emit_expr_with_reloc::" (assignment_expression "bVar24 = emit_expr_with_reloc" identifier = identifier) : :) (labeled_statement "lexical_block_7::dwarf_line == 0;" statement_identifier : (ERROR ":" :) (expression_statement "dwarf_line == 0;" (binary_expression "dwarf_line == 0" identifier == number_literal) ;)) (if_statement "if (-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line) goto LAB_0002f49a;" if (parenthesized_expression "(-1 < emit_expr_with_reloc::lexical_block_7::dwarf_line)" ( (binary_expression "-1 < emit_expr_with_reloc" number_literal < identifier) (ERROR "::lexical_block_7::dwarf_line" : : identifier : : identifier) )) (goto_statement "goto LAB_0002f49a;" goto statement_identifier ;)) })) })) (goto_statement "goto LAB_0002f490;" goto statement_identifier ;) })) (expression_statement "bVar22 = (byte)exp->field_0xc < 2;" (assignment_expression "bVar22 = (byte)exp->field_0xc < 2" identifier = (binary_expression "(byte)exp->field_0xc < 2" (cast_expression "(byte)exp->field_0xc" ( (type_descriptor "byte" type_identifier) ) (field_expression "exp->field_0xc" identifier -> field_identifier)) < number_literal)) ;) (expression_statement "bVar24 = exp->field_0xc == 2;" (assignment_expression "bVar24 = exp->field_0xc == 2" identifier = (binary_expression "exp->field_0xc == 2" (field_expression "exp->field_0xc" identifier -> field_identifier) == number_literal)) ;) (if_statement "if (!bVar24) goto LAB_0002f490;" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (goto_statement "goto LAB_0002f490;" goto statement_identifier ;)) (expression_statement "bVar22 = false;" (assignment_expression "bVar22 = false" identifier = false) ;) (expression_statement "bVar24 = (exp->X_add_number + 1U & 0xfffeffff) == 0;" (assignment_expression "bVar24 = (exp->X_add_number + 1U & 0xfffeffff) == 0" identifier = (binary_expression "(exp->X_add_number + 1U & 0xfffeffff) == 0" (parenthesized_expression "(exp->X_add_number + 1U & 0xfffeffff)" ( (binary_expression "exp->X_add_number + 1U & 0xfffeffff" (binary_expression "exp->X_add_number + 1U" (field_expression "exp->X_add_number" identifier -> field_identifier) + number_literal) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar24) goto LAB_0002f490;" if (parenthesized_expression "(!bVar24)" ( (unary_expression "!bVar24" ! identifier) )) (goto_statement "goto LAB_0002f490;" goto statement_identifier ;)) (expression_statement "local_20 = &frag_now;" (assignment_expression "local_20 = &frag_now" identifier = (pointer_expression "&frag_now" & identifier)) ;) (labeled_statement "listing_source_line(emit_expr_with_reloc::lexical_block_7::dwarf_line);" statement_identifier (ERROR "(emit_expr_with_reloc:" ( (type_descriptor "emit_expr_with_reloc" type_identifier) :) : (labeled_statement "lexical_block_7::dwarf_line);" statement_identifier : (ERROR ":" :) (expression_statement "dwarf_line);" identifier (ERROR ")" )) ;))) (expression_statement "bVar22 = (undefined1 *)0xffffffef < &stack0xffffffc4;" (assignment_expression "bVar22 = (undefined1 *)0xffffffef < &stack0xffffffc4" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffffc4" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffc4" & identifier))) ;) (expression_statement "bVar24 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "bVar24 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar2 = (byte *)(*local_24)->name;" (assignment_expression "pbVar2 = (byte *)(*local_24)->name" identifier = (cast_expression "(byte *)(*local_24)->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(*local_24)->name" (parenthesized_expression "(*local_24)" ( (pointer_expression "*local_24" * identifier) )) -> field_identifier))) ;) }) (else_clause "else {\nLAB_0002f490:\n    emit_expr_with_reloc::lexical_block_7::dwarf_line = -1;\n    local_20 = &frag_now;\n  }" else (compound_statement "{\nLAB_0002f490:\n    emit_expr_with_reloc::lexical_block_7::dwarf_line = -1;\n    local_20 = &frag_now;\n  }" { (labeled_statement "LAB_0002f490:\n    emit_expr_with_reloc::lexical_block_7::dwarf_line = -1;" statement_identifier : (labeled_statement "emit_expr_with_reloc::lexical_block_7::dwarf_line = -1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_7::dwarf_line = -1;" statement_identifier : (ERROR ":" :) (expression_statement "dwarf_line = -1;" (assignment_expression "dwarf_line = -1" identifier = number_literal) ;)))) (expression_statement "local_20 = &frag_now;" (assignment_expression "local_20 = &frag_now" identifier = (pointer_expression "&frag_now" & identifier)) ;) }))) (labeled_statement "LAB_0002f49a:\n  iVar7 = 7;" statement_identifier : (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;)) (expression_statement "pbVar14 = (byte *)".debug";" (assignment_expression "pbVar14 = (byte *)".debug"" identifier = (cast_expression "(byte *)".debug"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug"" " string_content "))) ;) (do_statement "do {\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar22 = *pbVar2 < *pbVar14;\n    bVar24 = *pbVar2 == *pbVar14;\n    pbVar2 = pbVar2 + (uint)bVar25 * -2 + 1;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n  } while (bVar24);" do (compound_statement "{\n    if (iVar7 == 0) break;\n    iVar7 = iVar7 + -1;\n    bVar22 = *pbVar2 < *pbVar14;\n    bVar24 = *pbVar2 == *pbVar14;\n    pbVar2 = pbVar2 + (uint)bVar25 * -2 + 1;\n    pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;\n  }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar22 = *pbVar2 < *pbVar14;" (assignment_expression "bVar22 = *pbVar2 < *pbVar14" identifier = (binary_expression "*pbVar2 < *pbVar14" (pointer_expression "*pbVar2" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar24 = *pbVar2 == *pbVar14;" (assignment_expression "bVar24 = *pbVar2 == *pbVar14" identifier = (binary_expression "*pbVar2 == *pbVar14" (pointer_expression "*pbVar2" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar2 = pbVar2 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar2 = pbVar2 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar2 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar2 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar25 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar25 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar25 * -2" identifier + (binary_expression "(uint)bVar25 * -2" (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar22 && !bVar24) == bVar22) {\n    if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 0) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 1) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;\n    dwarf_file_string = 0;\n  }" if (parenthesized_expression "((!bVar22 && !bVar24) == bVar22)" ( (binary_expression "(!bVar22 && !bVar24) == bVar22" (parenthesized_expression "(!bVar22 && !bVar24)" ( (binary_expression "!bVar22 && !bVar24" (unary_expression "!bVar22" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n    if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 0) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 1) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }\n  }" { (if_statement "if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 0) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 1) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }" if (parenthesized_expression "(emit_expr_with_reloc::lexical_block_8::dwarf_file == 0)" ( (binary_expression "emit_expr_with_reloc::lexical_block_8::dwarf_file == 0" identifier (ERROR "::lexical_block_8::dwarf_file" : : identifier : : identifier) == number_literal) )) (compound_statement "{\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;\n      dwarf_file_string = 0;\n    }" { (if_statement "if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))\n      goto LAB_0002f4d8;" if (parenthesized_expression "(((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))" ( (binary_expression "((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11)" (parenthesized_expression "((nbytes != 2) || (exp->field_0xc != '\x02'))" ( (binary_expression "(nbytes != 2) || (exp->field_0xc != '\x02')" (parenthesized_expression "(nbytes != 2)" ( (binary_expression "nbytes != 2" identifier != number_literal) )) || (parenthesized_expression "(exp->field_0xc != '\x02')" ( (binary_expression "exp->field_0xc != '\x02'" (field_expression "exp->field_0xc" identifier -> field_identifier) != (char_literal "'\x02'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(exp->X_add_number != 0x11)" ( (binary_expression "exp->X_add_number != 0x11" (field_expression "exp->X_add_number" identifier -> field_identifier) != number_literal) ))) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (labeled_statement "emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_8::dwarf_file = 1;" statement_identifier : (ERROR ":" :) (expression_statement "dwarf_file = 1;" (assignment_expression "dwarf_file = 1" identifier = number_literal) ;))) (expression_statement "dwarf_file_string = 0;" (assignment_expression "dwarf_file_string = 0" identifier = number_literal) ;) }) (else_clause "else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 1) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }" else (if_statement "if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 1) {\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;\n      dwarf_file_string = 0;\n    }\n    else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }" if (parenthesized_expression "(emit_expr_with_reloc::lexical_block_8::dwarf_file == 1)" ( (binary_expression "emit_expr_with_reloc::lexical_block_8::dwarf_file == 1" identifier (ERROR "::lexical_block_8::dwarf_file" : : identifier : : identifier) == number_literal) )) (compound_statement "{\n      if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;\n      dwarf_file_string = 0;\n    }" { (if_statement "if (((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))\n      goto LAB_0002f4d8;" if (parenthesized_expression "(((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))" ( (binary_expression "((nbytes != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12)" (parenthesized_expression "((nbytes != 2) || (exp->field_0xc != '\x02'))" ( (binary_expression "(nbytes != 2) || (exp->field_0xc != '\x02')" (parenthesized_expression "(nbytes != 2)" ( (binary_expression "nbytes != 2" identifier != number_literal) )) || (parenthesized_expression "(exp->field_0xc != '\x02')" ( (binary_expression "exp->field_0xc != '\x02'" (field_expression "exp->field_0xc" identifier -> field_identifier) != (char_literal "'\x02'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(exp->X_add_number != 0x12)" ( (binary_expression "exp->X_add_number != 0x12" (field_expression "exp->X_add_number" identifier -> field_identifier) != number_literal) ))) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (labeled_statement "emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_8::dwarf_file = 2;" statement_identifier : (ERROR ":" :) (expression_statement "dwarf_file = 2;" (assignment_expression "dwarf_file = 2" identifier = number_literal) ;))) (expression_statement "dwarf_file_string = 0;" (assignment_expression "dwarf_file_string = 0" identifier = number_literal) ;) }) (else_clause "else if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }" else (if_statement "if (emit_expr_with_reloc::lexical_block_8::dwarf_file == 2) {\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }\n    else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }" if (parenthesized_expression "(emit_expr_with_reloc::lexical_block_8::dwarf_file == 2)" ( (binary_expression "emit_expr_with_reloc::lexical_block_8::dwarf_file == 2" identifier (ERROR "::lexical_block_8::dwarf_file" : : identifier : : identifier) == number_literal) )) (compound_statement "{\n      if (nbytes != 4) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;\n      dwarf_file_string = 0;\n    }" { (if_statement "if (nbytes != 4) goto LAB_0002f4d8;" if (parenthesized_expression "(nbytes != 4)" ( (binary_expression "nbytes != 4" identifier != number_literal) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (labeled_statement "emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_8::dwarf_file = 3;" statement_identifier : (ERROR ":" :) (expression_statement "dwarf_file = 3;" (assignment_expression "dwarf_file = 3" identifier = number_literal) ;))) (expression_statement "dwarf_file_string = 0;" (assignment_expression "dwarf_file_string = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }" else (compound_statement "{\n      if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;\n      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;\n      dwarf_file_string = 1;\n    }" { (if_statement "if (((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;" if (parenthesized_expression "(((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38))))" ( (binary_expression "((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)) ||\n         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))" (parenthesized_expression "((emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2))" ( (binary_expression "(emit_expr_with_reloc::lexical_block_8::dwarf_file != 3) || (nbytes != 2)" (parenthesized_expression "(emit_expr_with_reloc::lexical_block_8::dwarf_file != 3)" ( (binary_expression "emit_expr_with_reloc::lexical_block_8::dwarf_file != 3" identifier (ERROR "::lexical_block_8::dwarf_file" : : identifier : : identifier) != number_literal) )) || (parenthesized_expression "(nbytes != 2)" ( (binary_expression "nbytes != 2" identifier != number_literal) ))) )) || (parenthesized_expression "((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))" ( (parenthesized_expression "(exp->field_0xc != '\x02' || (exp->X_add_number != 0x38))" ( (binary_expression "exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)" (binary_expression "exp->field_0xc != '\x02'" (field_expression "exp->field_0xc" identifier -> field_identifier) != (char_literal "'\x02'" ' escape_sequence ')) || (parenthesized_expression "(exp->X_add_number != 0x38)" ( (binary_expression "exp->X_add_number != 0x38" (field_expression "exp->X_add_number" identifier -> field_identifier) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (labeled_statement "emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_8::dwarf_file = 4;" statement_identifier : (ERROR ":" :) (expression_statement "dwarf_file = 4;" (assignment_expression "dwarf_file = 4" identifier = number_literal) ;))) (expression_statement "dwarf_file_string = 1;" (assignment_expression "dwarf_file_string = 1" identifier = number_literal) ;) }))))))) }) (else_clause "else {\nLAB_0002f4d8:\n    emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;\n    dwarf_file_string = 0;\n  }" else (compound_statement "{\nLAB_0002f4d8:\n    emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;\n    dwarf_file_string = 0;\n  }" { (labeled_statement "LAB_0002f4d8:\n    emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;" statement_identifier : (labeled_statement "emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_8::dwarf_file = 0;" statement_identifier : (ERROR ":" :) (expression_statement "dwarf_file = 0;" (assignment_expression "dwarf_file = 0" identifier = number_literal) ;)))) (expression_statement "dwarf_file_string = 0;" (assignment_expression "dwarf_file_string = 0" identifier = number_literal) ;) }))) (expression_statement "iVar7 = check_eh_frame(exp,&nbytes);" (assignment_expression "iVar7 = check_eh_frame(exp,&nbytes)" identifier = (call_expression "check_eh_frame(exp,&nbytes)" identifier (argument_list "(exp,&nbytes)" ( identifier , (pointer_expression "&nbytes" & identifier) )))) ;) (expression_statement "ppaVar10 = local_24;" (assignment_expression "ppaVar10 = local_24" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "bVar25 = exp->field_0xc;" (assignment_expression "bVar25 = exp->field_0xc" identifier = (field_expression "exp->field_0xc" identifier -> field_identifier)) ;) (if_statement "if (bVar25 == 7) {\n    if (((exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&\n       (peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number)) {\n      exp = symbol_get_value_expression(exp->X_add_symbol);\n      ppaVar10 = local_24;\n      iVar7 = exp->X_add_number;\n      if (iVar7 < 1) goto LAB_0002fc48;\n      uVar9 = 1;\n      puVar13 = &generic_bignum;\n      do {\n        uVar18 = *puVar13;\n        puVar16 = puVar13 + 1;\n        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);\n        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;\n        puVar13 = puVar16;\n      } while (&generic_bignum + iVar7 != puVar16);\n      local_24 = (segT *)0xffffffff;\nLAB_0002f544:\n      paVar8 = *ppaVar10;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n      bVar25 = 6;\n    }\n    else {\n      paVar8 = *local_24;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }\nLAB_0002f7a0:\n      local_24 = (segT *)0x0;\n    }\nLAB_0002f7a8:\n    if ((paVar8->flags & 0x103) == 1) {\n      pcVar3 = (char *)dcgettext();\n      as_bad(pcVar3);\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) goto LAB_0002f730;\n    if (bVar25 == 2) goto LAB_0002f604;\n    if (bVar25 != 6) {\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE);\n      return;\n    }\n    iVar7 = exp->X_add_number;\n    uVar9 = iVar7 * 2;\n    if (nbytes < (uint)(iVar7 * 2)) {\n      uVar9 = nbytes >> 1;\n      uVar20 = nbytes;\n      if (uVar9 != 0) goto LAB_0002f669;\n      if (nbytes == 1) {\n        local_20 = (fragS **)&generic_bignum;\n        uVar18 = (short)(generic_bignum << 8) >> 0xf;\n        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar12 = 0;\n        do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);\n        uVar20 = 1;\n      }\n      else {\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar25 < 2) {\n      pcVar3 = (char *)dcgettext();\n      as_warn(pcVar3);\nLAB_0002f5bf:\n      exp->X_add_number = 0;\n      if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }\n    }\n    else {\n      if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }\n      if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }\n      if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) {\nLAB_0002f730:\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);\n      return;\n    }\nLAB_0002f604:\n    ppaVar10 = (segT *)exp->X_add_number;\n    if (nbytes < 5) {\n      ppaVar11 = ppaVar10;\n      if (nbytes != 4) {\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }\n      number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);\n      return;\n    }\n    if ((exp->field_0xd & 1) == 0) {\n      uVar6 = 0xffff;\n      local_24 = (segT *)0xffffffff;\n    }\n    else {\n      uVar6 = 0;\n      local_24 = (segT *)0x0;\n    }\n    if ((int)ppaVar10 < 0) {\n      uVar9 = 4;\n      iVar7 = 2;\n    }\n    else {\n      uVar9 = 6;\n      iVar7 = 3;\n      DAT_00084884 = uVar6;\n    }\n    local_20 = (fragS **)&generic_bignum;\n    _generic_bignum = ppaVar10;\n    exp->field_0xc = 6;\n    exp->X_add_number = iVar7;\n    uVar20 = nbytes;\n    if (uVar9 <= nbytes) goto LAB_0002f698;\n    uVar9 = 2;\n    uVar20 = 5;\nLAB_0002f669:\n    iVar12 = uVar9 - 1;\n    psVar1 = (short *)(&generic_bignum + iVar12);\n    local_20 = (fragS **)CONCAT22(8,*psVar1);\n    do {\n      iVar12 = iVar12 + 1;\n      uVar9 = uVar20;\n      if (iVar7 <= iVar12) goto LAB_0002f698;\n    } while ((&generic_bignum)[iVar12] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20);\n    as_warn(pcVar5);\n    uVar9 = nbytes;\n  }" if (parenthesized_expression "(bVar25 == 7)" ( (binary_expression "bVar25 == 7" identifier == number_literal) )) (compound_statement "{\n    if (((exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&\n       (peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number)) {\n      exp = symbol_get_value_expression(exp->X_add_symbol);\n      ppaVar10 = local_24;\n      iVar7 = exp->X_add_number;\n      if (iVar7 < 1) goto LAB_0002fc48;\n      uVar9 = 1;\n      puVar13 = &generic_bignum;\n      do {\n        uVar18 = *puVar13;\n        puVar16 = puVar13 + 1;\n        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);\n        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;\n        puVar13 = puVar16;\n      } while (&generic_bignum + iVar7 != puVar16);\n      local_24 = (segT *)0xffffffff;\nLAB_0002f544:\n      paVar8 = *ppaVar10;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n      bVar25 = 6;\n    }\n    else {\n      paVar8 = *local_24;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }\nLAB_0002f7a0:\n      local_24 = (segT *)0x0;\n    }\nLAB_0002f7a8:\n    if ((paVar8->flags & 0x103) == 1) {\n      pcVar3 = (char *)dcgettext();\n      as_bad(pcVar3);\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) goto LAB_0002f730;\n    if (bVar25 == 2) goto LAB_0002f604;\n    if (bVar25 != 6) {\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE);\n      return;\n    }\n    iVar7 = exp->X_add_number;\n    uVar9 = iVar7 * 2;\n    if (nbytes < (uint)(iVar7 * 2)) {\n      uVar9 = nbytes >> 1;\n      uVar20 = nbytes;\n      if (uVar9 != 0) goto LAB_0002f669;\n      if (nbytes == 1) {\n        local_20 = (fragS **)&generic_bignum;\n        uVar18 = (short)(generic_bignum << 8) >> 0xf;\n        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar12 = 0;\n        do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);\n        uVar20 = 1;\n      }\n      else {\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }" { (if_statement "if (((exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&\n       (peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number)) {\n      exp = symbol_get_value_expression(exp->X_add_symbol);\n      ppaVar10 = local_24;\n      iVar7 = exp->X_add_number;\n      if (iVar7 < 1) goto LAB_0002fc48;\n      uVar9 = 1;\n      puVar13 = &generic_bignum;\n      do {\n        uVar18 = *puVar13;\n        puVar16 = puVar13 + 1;\n        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);\n        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;\n        puVar13 = puVar16;\n      } while (&generic_bignum + iVar7 != puVar16);\n      local_24 = (segT *)0xffffffff;\nLAB_0002f544:\n      paVar8 = *ppaVar10;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n      bVar25 = 6;\n    }\n    else {\n      paVar8 = *local_24;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }\nLAB_0002f7a0:\n      local_24 = (segT *)0x0;\n    }" if (parenthesized_expression "(((exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&\n       (peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number))" ( (binary_expression "((exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&\n       (peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number)" (parenthesized_expression "((exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06'))" ( (binary_expression "(exp->X_add_number == 0) &&\n        (peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')" (parenthesized_expression "(exp->X_add_number == 0)" ( (binary_expression "exp->X_add_number == 0" (field_expression "exp->X_add_number" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06')" ( (comma_expression "peVar4 = symbol_get_value_expression(exp->X_add_symbol), peVar4->field_0xc == '\x06'" (assignment_expression "peVar4 = symbol_get_value_expression(exp->X_add_symbol)" identifier = (call_expression "symbol_get_value_expression(exp->X_add_symbol)" identifier (argument_list "(exp->X_add_symbol)" ( (field_expression "exp->X_add_symbol" identifier -> field_identifier) )))) , (binary_expression "peVar4->field_0xc == '\x06'" (field_expression "peVar4->field_0xc" identifier -> field_identifier) == (char_literal "'\x06'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number)" ( (comma_expression "peVar4 = symbol_get_value_expression(exp->X_add_symbol), 0 < peVar4->X_add_number" (assignment_expression "peVar4 = symbol_get_value_expression(exp->X_add_symbol)" identifier = (call_expression "symbol_get_value_expression(exp->X_add_symbol)" identifier (argument_list "(exp->X_add_symbol)" ( (field_expression "exp->X_add_symbol" identifier -> field_identifier) )))) , (binary_expression "0 < peVar4->X_add_number" number_literal < (field_expression "peVar4->X_add_number" identifier -> field_identifier))) ))) )) (compound_statement "{\n      exp = symbol_get_value_expression(exp->X_add_symbol);\n      ppaVar10 = local_24;\n      iVar7 = exp->X_add_number;\n      if (iVar7 < 1) goto LAB_0002fc48;\n      uVar9 = 1;\n      puVar13 = &generic_bignum;\n      do {\n        uVar18 = *puVar13;\n        puVar16 = puVar13 + 1;\n        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);\n        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;\n        puVar13 = puVar16;\n      } while (&generic_bignum + iVar7 != puVar16);\n      local_24 = (segT *)0xffffffff;\nLAB_0002f544:\n      paVar8 = *ppaVar10;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n      bVar25 = 6;\n    }" { (expression_statement "exp = symbol_get_value_expression(exp->X_add_symbol);" (assignment_expression "exp = symbol_get_value_expression(exp->X_add_symbol)" identifier = (call_expression "symbol_get_value_expression(exp->X_add_symbol)" identifier (argument_list "(exp->X_add_symbol)" ( (field_expression "exp->X_add_symbol" identifier -> field_identifier) )))) ;) (expression_statement "ppaVar10 = local_24;" (assignment_expression "ppaVar10 = local_24" identifier = identifier) ;) (expression_statement "iVar7 = exp->X_add_number;" (assignment_expression "iVar7 = exp->X_add_number" identifier = (field_expression "exp->X_add_number" identifier -> field_identifier)) ;) (if_statement "if (iVar7 < 1) goto LAB_0002fc48;" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0002fc48;" goto statement_identifier ;)) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) (expression_statement "puVar13 = &generic_bignum;" (assignment_expression "puVar13 = &generic_bignum" identifier = (pointer_expression "&generic_bignum" & identifier)) ;) (do_statement "do {\n        uVar18 = *puVar13;\n        puVar16 = puVar13 + 1;\n        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);\n        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;\n        puVar13 = puVar16;\n      } while (&generic_bignum + iVar7 != puVar16);" do (compound_statement "{\n        uVar18 = *puVar13;\n        puVar16 = puVar13 + 1;\n        *puVar13 = (ushort)(uVar9 + (ushort)~uVar18);\n        uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;\n        puVar13 = puVar16;\n      }" { (expression_statement "uVar18 = *puVar13;" (assignment_expression "uVar18 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar16 = puVar13 + 1;" (assignment_expression "puVar16 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "*puVar13 = (ushort)(uVar9 + (ushort)~uVar18);" (assignment_expression "*puVar13 = (ushort)(uVar9 + (ushort)~uVar18)" (pointer_expression "*puVar13" * identifier) = (call_expression "(ushort)(uVar9 + (ushort)~uVar18)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar9 + (ushort)~uVar18)" ( (binary_expression "uVar9 + (ushort)~uVar18" identifier + (cast_expression "(ushort)~uVar18" ( (type_descriptor "ushort" type_identifier) ) (unary_expression "~uVar18" ~ identifier))) )))) ;) (expression_statement "uVar9 = uVar9 + (ushort)~uVar18 >> 0x10;" (assignment_expression "uVar9 = uVar9 + (ushort)~uVar18 >> 0x10" identifier = (binary_expression "uVar9 + (ushort)~uVar18 >> 0x10" (binary_expression "uVar9 + (ushort)~uVar18" identifier + (cast_expression "(ushort)~uVar18" ( (type_descriptor "ushort" type_identifier) ) (unary_expression "~uVar18" ~ identifier))) >> number_literal)) ;) (expression_statement "puVar13 = puVar16;" (assignment_expression "puVar13 = puVar16" identifier = identifier) ;) }) while (parenthesized_expression "(&generic_bignum + iVar7 != puVar16)" ( (binary_expression "&generic_bignum + iVar7 != puVar16" (binary_expression "&generic_bignum + iVar7" (pointer_expression "&generic_bignum" & identifier) + identifier) != identifier) )) ;) (expression_statement "local_24 = (segT *)0xffffffff;" (assignment_expression "local_24 = (segT *)0xffffffff" identifier = (cast_expression "(segT *)0xffffffff" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0002f544:\n      paVar8 = *ppaVar10;" statement_identifier : (expression_statement "paVar8 = *ppaVar10;" (assignment_expression "paVar8 = *ppaVar10" identifier = (pointer_expression "*ppaVar10" * identifier)) ;)) (if_statement "if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;" if (parenthesized_expression "(paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (call_expression "(segT)(PTR__bfd_std_section_0007afb0 + 0x150)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (goto_statement "goto LAB_0002f8c1;" goto statement_identifier ;)) (expression_statement "bVar25 = 6;" (assignment_expression "bVar25 = 6" identifier = number_literal) ;) }) (else_clause "else {\n      paVar8 = *local_24;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }\nLAB_0002f7a0:\n      local_24 = (segT *)0x0;\n    }" else (compound_statement "{\n      paVar8 = *local_24;\n      if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }\nLAB_0002f7a0:\n      local_24 = (segT *)0x0;\n    }" { (expression_statement "paVar8 = *local_24;" (assignment_expression "paVar8 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (if_statement "if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }" if (parenthesized_expression "(paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (call_expression "(segT)(PTR__bfd_std_section_0007afb0 + 0x150)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f8df;\n      }" { (labeled_statement "LAB_0002f8c1:\n        pcVar3 = (char *)dcgettext();" statement_identifier : (expression_statement "pcVar3 = (char *)dcgettext();" (assignment_expression "pcVar3 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;)) (expression_statement "as_bad(pcVar3);" (call_expression "as_bad(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (goto_statement "goto LAB_0002f8df;" goto statement_identifier ;) })) (labeled_statement "LAB_0002f7a0:\n      local_24 = (segT *)0x0;" statement_identifier : (expression_statement "local_24 = (segT *)0x0;" (assignment_expression "local_24 = (segT *)0x0" identifier = (cast_expression "(segT *)0x0" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) (labeled_statement "LAB_0002f7a8:\n    if ((paVar8->flags & 0x103) == 1) {\n      pcVar3 = (char *)dcgettext();\n      as_bad(pcVar3);\n    }" statement_identifier : (if_statement "if ((paVar8->flags & 0x103) == 1) {\n      pcVar3 = (char *)dcgettext();\n      as_bad(pcVar3);\n    }" if (parenthesized_expression "((paVar8->flags & 0x103) == 1)" ( (binary_expression "(paVar8->flags & 0x103) == 1" (parenthesized_expression "(paVar8->flags & 0x103)" ( (binary_expression "paVar8->flags & 0x103" (field_expression "paVar8->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext();\n      as_bad(pcVar3);\n    }" { (expression_statement "pcVar3 = (char *)dcgettext();" (assignment_expression "pcVar3 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "as_bad(pcVar3);" (call_expression "as_bad(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) }))) (expression_statement "pcVar3 = frag_more(nbytes);" (assignment_expression "pcVar3 = frag_more(nbytes)" identifier = (call_expression "frag_more(nbytes)" identifier (argument_list "(nbytes)" ( identifier )))) ;) (if_statement "if (reloc != BFD_RELOC_NONE) goto LAB_0002f730;" if (parenthesized_expression "(reloc != BFD_RELOC_NONE)" ( (binary_expression "reloc != BFD_RELOC_NONE" identifier != identifier) )) (goto_statement "goto LAB_0002f730;" goto statement_identifier ;)) (if_statement "if (bVar25 == 2) goto LAB_0002f604;" if (parenthesized_expression "(bVar25 == 2)" ( (binary_expression "bVar25 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0002f604;" goto statement_identifier ;)) (if_statement "if (bVar25 != 6) {\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE);\n      return;\n    }" if (parenthesized_expression "(bVar25 != 6)" ( (binary_expression "bVar25 != 6" identifier != number_literal) )) (compound_statement "{\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE);\n      return;\n    }" { (expression_statement "emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE);" (call_expression "emit_expr_fix(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE)" identifier (argument_list "(exp,nbytes,*local_20,pcVar3,BFD_RELOC_NONE)" ( identifier , identifier , (pointer_expression "*local_20" * identifier) , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar7 = exp->X_add_number;" (assignment_expression "iVar7 = exp->X_add_number" identifier = (field_expression "exp->X_add_number" identifier -> field_identifier)) ;) (expression_statement "uVar9 = iVar7 * 2;" (assignment_expression "uVar9 = iVar7 * 2" identifier = (binary_expression "iVar7 * 2" identifier * number_literal)) ;) (if_statement "if (nbytes < (uint)(iVar7 * 2)) {\n      uVar9 = nbytes >> 1;\n      uVar20 = nbytes;\n      if (uVar9 != 0) goto LAB_0002f669;\n      if (nbytes == 1) {\n        local_20 = (fragS **)&generic_bignum;\n        uVar18 = (short)(generic_bignum << 8) >> 0xf;\n        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar12 = 0;\n        do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);\n        uVar20 = 1;\n      }\n      else {\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }" if (parenthesized_expression "(nbytes < (uint)(iVar7 * 2))" ( (binary_expression "nbytes < (uint)(iVar7 * 2)" identifier < (call_expression "(uint)(iVar7 * 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 * 2)" ( (binary_expression "iVar7 * 2" identifier * number_literal) )))) )) (compound_statement "{\n      uVar9 = nbytes >> 1;\n      uVar20 = nbytes;\n      if (uVar9 != 0) goto LAB_0002f669;\n      if (nbytes == 1) {\n        local_20 = (fragS **)&generic_bignum;\n        uVar18 = (short)(generic_bignum << 8) >> 0xf;\n        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar12 = 0;\n        do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);\n        uVar20 = 1;\n      }\n      else {\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }" { (expression_statement "uVar9 = nbytes >> 1;" (assignment_expression "uVar9 = nbytes >> 1" identifier = (binary_expression "nbytes >> 1" identifier >> number_literal)) ;) (expression_statement "uVar20 = nbytes;" (assignment_expression "uVar20 = nbytes" identifier = identifier) ;) (if_statement "if (uVar9 != 0) goto LAB_0002f669;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002f669;" goto statement_identifier ;)) (if_statement "if (nbytes == 1) {\n        local_20 = (fragS **)&generic_bignum;\n        uVar18 = (short)(generic_bignum << 8) >> 0xf;\n        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar12 = 0;\n        do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);\n        uVar20 = 1;\n      }\n      else {\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }" if (parenthesized_expression "(nbytes == 1)" ( (binary_expression "nbytes == 1" identifier == number_literal) )) (compound_statement "{\n        local_20 = (fragS **)&generic_bignum;\n        uVar18 = (short)(generic_bignum << 8) >> 0xf;\n        if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar12 = 0;\n        do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);\n        uVar20 = 1;\n      }" { (expression_statement "local_20 = (fragS **)&generic_bignum;" (assignment_expression "local_20 = (fragS **)&generic_bignum" identifier = (cast_expression "(fragS **)&generic_bignum" ( (type_descriptor "fragS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&generic_bignum" & identifier))) ;) (expression_statement "uVar18 = (short)(generic_bignum << 8) >> 0xf;" (assignment_expression "uVar18 = (short)(generic_bignum << 8) >> 0xf" identifier = (binary_expression "(short)(generic_bignum << 8) >> 0xf" (cast_expression "(short)(generic_bignum << 8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(generic_bignum << 8)" ( (binary_expression "generic_bignum << 8" identifier << number_literal) ))) >> number_literal)) ;) (if_statement "if (((generic_bignum ^ uVar18) & 0xff00) != 0) goto LAB_0002fb1d;" if (parenthesized_expression "(((generic_bignum ^ uVar18) & 0xff00) != 0)" ( (binary_expression "((generic_bignum ^ uVar18) & 0xff00) != 0" (parenthesized_expression "((generic_bignum ^ uVar18) & 0xff00)" ( (binary_expression "(generic_bignum ^ uVar18) & 0xff00" (parenthesized_expression "(generic_bignum ^ uVar18)" ( (binary_expression "generic_bignum ^ uVar18" identifier ^ identifier) )) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0002fb1d;" goto statement_identifier ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        } while ((&generic_bignum)[iVar12] == uVar18);" do (compound_statement "{\n          iVar12 = iVar12 + 1;\n          if (iVar7 <= iVar12) goto LAB_0002fb38;\n        }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 <= iVar12) goto LAB_0002fb38;" if (parenthesized_expression "(iVar7 <= iVar12)" ( (binary_expression "iVar7 <= iVar12" identifier <= identifier) )) (goto_statement "goto LAB_0002fb38;" goto statement_identifier ;)) }) while (parenthesized_expression "((&generic_bignum)[iVar12] == uVar18)" ( (binary_expression "(&generic_bignum)[iVar12] == uVar18" (subscript_expression "(&generic_bignum)[iVar12]" (parenthesized_expression "(&generic_bignum)" ( (pointer_expression "&generic_bignum" & identifier) )) [ identifier ]) == identifier) )) ;) (expression_statement "uVar20 = 1;" (assignment_expression "uVar20 = 1" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }" else (compound_statement "{\nLAB_0002fb1d:\n        uVar9 = nbytes;\n        if (iVar7 < 1) goto LAB_0002fb25;\n      }" { (labeled_statement "LAB_0002fb1d:\n        uVar9 = nbytes;" statement_identifier : (expression_statement "uVar9 = nbytes;" (assignment_expression "uVar9 = nbytes" identifier = identifier) ;)) (if_statement "if (iVar7 < 1) goto LAB_0002fb25;" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0002fb25;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0002fb98;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (bVar25 < 2) {\n      pcVar3 = (char *)dcgettext();\n      as_warn(pcVar3);\nLAB_0002f5bf:\n      exp->X_add_number = 0;\n      if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }\n    }\n    else {\n      if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }\n      if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }\n      if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) {\nLAB_0002f730:\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);\n      return;\n    }\nLAB_0002f604:\n    ppaVar10 = (segT *)exp->X_add_number;\n    if (nbytes < 5) {\n      ppaVar11 = ppaVar10;\n      if (nbytes != 4) {\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }\n      number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);\n      return;\n    }\n    if ((exp->field_0xd & 1) == 0) {\n      uVar6 = 0xffff;\n      local_24 = (segT *)0xffffffff;\n    }\n    else {\n      uVar6 = 0;\n      local_24 = (segT *)0x0;\n    }\n    if ((int)ppaVar10 < 0) {\n      uVar9 = 4;\n      iVar7 = 2;\n    }\n    else {\n      uVar9 = 6;\n      iVar7 = 3;\n      DAT_00084884 = uVar6;\n    }\n    local_20 = (fragS **)&generic_bignum;\n    _generic_bignum = ppaVar10;\n    exp->field_0xc = 6;\n    exp->X_add_number = iVar7;\n    uVar20 = nbytes;\n    if (uVar9 <= nbytes) goto LAB_0002f698;\n    uVar9 = 2;\n    uVar20 = 5;\nLAB_0002f669:\n    iVar12 = uVar9 - 1;\n    psVar1 = (short *)(&generic_bignum + iVar12);\n    local_20 = (fragS **)CONCAT22(8,*psVar1);\n    do {\n      iVar12 = iVar12 + 1;\n      uVar9 = uVar20;\n      if (iVar7 <= iVar12) goto LAB_0002f698;\n    } while ((&generic_bignum)[iVar12] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20);\n    as_warn(pcVar5);\n    uVar9 = nbytes;\n  }" else (compound_statement "{\n    if (bVar25 < 2) {\n      pcVar3 = (char *)dcgettext();\n      as_warn(pcVar3);\nLAB_0002f5bf:\n      exp->X_add_number = 0;\n      if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }\n    }\n    else {\n      if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }\n      if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }\n      if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    pcVar3 = frag_more(nbytes);\n    if (reloc != BFD_RELOC_NONE) {\nLAB_0002f730:\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);\n      return;\n    }\nLAB_0002f604:\n    ppaVar10 = (segT *)exp->X_add_number;\n    if (nbytes < 5) {\n      ppaVar11 = ppaVar10;\n      if (nbytes != 4) {\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }\n      number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);\n      return;\n    }\n    if ((exp->field_0xd & 1) == 0) {\n      uVar6 = 0xffff;\n      local_24 = (segT *)0xffffffff;\n    }\n    else {\n      uVar6 = 0;\n      local_24 = (segT *)0x0;\n    }\n    if ((int)ppaVar10 < 0) {\n      uVar9 = 4;\n      iVar7 = 2;\n    }\n    else {\n      uVar9 = 6;\n      iVar7 = 3;\n      DAT_00084884 = uVar6;\n    }\n    local_20 = (fragS **)&generic_bignum;\n    _generic_bignum = ppaVar10;\n    exp->field_0xc = 6;\n    exp->X_add_number = iVar7;\n    uVar20 = nbytes;\n    if (uVar9 <= nbytes) goto LAB_0002f698;\n    uVar9 = 2;\n    uVar20 = 5;\nLAB_0002f669:\n    iVar12 = uVar9 - 1;\n    psVar1 = (short *)(&generic_bignum + iVar12);\n    local_20 = (fragS **)CONCAT22(8,*psVar1);\n    do {\n      iVar12 = iVar12 + 1;\n      uVar9 = uVar20;\n      if (iVar7 <= iVar12) goto LAB_0002f698;\n    } while ((&generic_bignum)[iVar12] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20);\n    as_warn(pcVar5);\n    uVar9 = nbytes;\n  }" { (if_statement "if (bVar25 < 2) {\n      pcVar3 = (char *)dcgettext();\n      as_warn(pcVar3);\nLAB_0002f5bf:\n      exp->X_add_number = 0;\n      if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }\n    }\n    else {\n      if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }\n      if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }\n      if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" if (parenthesized_expression "(bVar25 < 2)" ( (binary_expression "bVar25 < 2" identifier < number_literal) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext();\n      as_warn(pcVar3);\nLAB_0002f5bf:\n      exp->X_add_number = 0;\n      if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }\n    }" { (expression_statement "pcVar3 = (char *)dcgettext();" (assignment_expression "pcVar3 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "as_warn(pcVar3);" (call_expression "as_warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (labeled_statement "LAB_0002f5bf:\n      exp->X_add_number = 0;" statement_identifier : (expression_statement "exp->X_add_number = 0;" (assignment_expression "exp->X_add_number = 0" (field_expression "exp->X_add_number" identifier -> field_identifier) = number_literal) ;)) (if_statement "if (*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }" if (parenthesized_expression "(*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "*local_24 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)" (pointer_expression "*local_24" * identifier) == (call_expression "(segT)(PTR__bfd_std_section_0007afb0 + 0x150)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;\n        return;\n      }" { (labeled_statement "LAB_0002f8df:\n        abs_section_offset = abs_section_offset + nbytes;" statement_identifier : (expression_statement "abs_section_offset = abs_section_offset + nbytes;" (assignment_expression "abs_section_offset = abs_section_offset + nbytes" identifier = (binary_expression "abs_section_offset + nbytes" identifier + identifier)) ;)) (return_statement "return;" return ;) })) }) (else_clause "else {\n      if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }\n      if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }\n      if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" else (compound_statement "{\n      if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }\n      if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }\n      if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" { (if_statement "if (bVar25 == 6) {\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }" if (parenthesized_expression "(bVar25 == 6)" ( (binary_expression "bVar25 == 6" identifier == number_literal) )) (compound_statement "{\n        local_24 = (segT *)0x0;\n        if (0 < exp->X_add_number) goto LAB_0002f544;\nLAB_0002fc48:\n        local_24 = ppaVar10;\n        pcVar3 = (char *)dcgettext();\n        as_bad(pcVar3);\n        goto LAB_0002f5bf;\n      }" { (expression_statement "local_24 = (segT *)0x0;" (assignment_expression "local_24 = (segT *)0x0" identifier = (cast_expression "(segT *)0x0" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < exp->X_add_number) goto LAB_0002f544;" if (parenthesized_expression "(0 < exp->X_add_number)" ( (binary_expression "0 < exp->X_add_number" number_literal < (field_expression "exp->X_add_number" identifier -> field_identifier)) )) (goto_statement "goto LAB_0002f544;" goto statement_identifier ;)) (labeled_statement "LAB_0002fc48:\n        local_24 = ppaVar10;" statement_identifier : (expression_statement "local_24 = ppaVar10;" (assignment_expression "local_24 = ppaVar10" identifier = identifier) ;)) (expression_statement "pcVar3 = (char *)dcgettext();" (assignment_expression "pcVar3 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "as_bad(pcVar3);" (call_expression "as_bad(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (goto_statement "goto LAB_0002f5bf;" goto statement_identifier ;) })) (if_statement "if (bVar25 == 5) {\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }" if (parenthesized_expression "(bVar25 == 5)" ( (binary_expression "bVar25 == 5" identifier == number_literal) )) (compound_statement "{\n        pcVar3 = (char *)dcgettext();\n        as_warn(pcVar3);\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }" { (expression_statement "pcVar3 = (char *)dcgettext();" (assignment_expression "pcVar3 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "as_warn(pcVar3);" (call_expression "as_warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "paVar8 = *local_24;" (assignment_expression "paVar8 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (if_statement "if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }" if (parenthesized_expression "(paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (call_expression "(segT)(PTR__bfd_std_section_0007afb0 + 0x150)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }" { (labeled_statement "LAB_0002f8b6:\n          if (exp->X_add_number == 0) goto LAB_0002f8df;" statement_identifier : (if_statement "if (exp->X_add_number == 0) goto LAB_0002f8df;" if (parenthesized_expression "(exp->X_add_number == 0)" ( (binary_expression "exp->X_add_number == 0" (field_expression "exp->X_add_number" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0002f8df;" goto statement_identifier ;))) (goto_statement "goto LAB_0002f8c1;" goto statement_identifier ;) })) }) (else_clause "else {\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }" else (compound_statement "{\n        paVar8 = *local_24;\n        if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar25 != 2) goto LAB_0002f7a0;\n      }" { (expression_statement "paVar8 = *local_24;" (assignment_expression "paVar8 = *local_24" identifier = (pointer_expression "*local_24" * identifier)) ;) (if_statement "if (paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }" if (parenthesized_expression "(paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "paVar8 == (segT)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (call_expression "(segT)(PTR__bfd_std_section_0007afb0 + 0x150)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\n          if (bVar25 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }" { (if_statement "if (bVar25 != 2) goto LAB_0002f8c1;" if (parenthesized_expression "(bVar25 != 2)" ( (binary_expression "bVar25 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0002f8c1;" goto statement_identifier ;)) (goto_statement "goto LAB_0002f8b6;" goto statement_identifier ;) })) (if_statement "if (bVar25 != 2) goto LAB_0002f7a0;" if (parenthesized_expression "(bVar25 != 2)" ( (binary_expression "bVar25 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0002f7a0;" goto statement_identifier ;)) }))) (if_statement "if (exp->X_add_number != 0) {\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }" if (parenthesized_expression "(exp->X_add_number != 0)" ( (binary_expression "exp->X_add_number != 0" (field_expression "exp->X_add_number" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        local_24 = (segT *)0x0;\n        bVar25 = 2;\n        goto LAB_0002f7a8;\n      }" { (expression_statement "local_24 = (segT *)0x0;" (assignment_expression "local_24 = (segT *)0x0" identifier = (cast_expression "(segT *)0x0" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar25 = 2;" (assignment_expression "bVar25 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0002f7a8;" goto statement_identifier ;) })) }))) (expression_statement "pcVar3 = frag_more(nbytes);" (assignment_expression "pcVar3 = frag_more(nbytes)" identifier = (call_expression "frag_more(nbytes)" identifier (argument_list "(nbytes)" ( identifier )))) ;) (if_statement "if (reloc != BFD_RELOC_NONE) {\nLAB_0002f730:\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);\n      return;\n    }" if (parenthesized_expression "(reloc != BFD_RELOC_NONE)" ( (binary_expression "reloc != BFD_RELOC_NONE" identifier != identifier) )) (compound_statement "{\nLAB_0002f730:\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);\n      return;\n    }" { (labeled_statement "LAB_0002f730:\n      emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);" statement_identifier : (expression_statement "emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc);" (call_expression "emit_expr_fix(exp,nbytes,*local_20,pcVar3,reloc)" identifier (argument_list "(exp,nbytes,*local_20,pcVar3,reloc)" ( identifier , identifier , (pointer_expression "*local_20" * identifier) , identifier , identifier ))) ;)) (return_statement "return;" return ;) })) (labeled_statement "LAB_0002f604:\n    ppaVar10 = (segT *)exp->X_add_number;" statement_identifier : (expression_statement "ppaVar10 = (segT *)exp->X_add_number;" (assignment_expression "ppaVar10 = (segT *)exp->X_add_number" identifier = (cast_expression "(segT *)exp->X_add_number" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "exp->X_add_number" identifier -> field_identifier))) ;)) (if_statement "if (nbytes < 5) {\n      ppaVar11 = ppaVar10;\n      if (nbytes != 4) {\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }\n      number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);\n      return;\n    }" if (parenthesized_expression "(nbytes < 5)" ( (binary_expression "nbytes < 5" identifier < number_literal) )) (compound_statement "{\n      ppaVar11 = ppaVar10;\n      if (nbytes != 4) {\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }\n      number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);\n      return;\n    }" { (expression_statement "ppaVar11 = ppaVar10;" (assignment_expression "ppaVar11 = ppaVar10" identifier = identifier) ;) (if_statement "if (nbytes != 4) {\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }" if (parenthesized_expression "(nbytes != 4)" ( (binary_expression "nbytes != 4" identifier != number_literal) )) (compound_statement "{\n        local_20 = (fragS **)(nbytes * 8);\n        uVar9 = -1 << ((byte)local_20 & 0x1f);\n        ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);\n        local_24 = ppaVar11;\n        if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }\n      }" { (expression_statement "local_20 = (fragS **)(nbytes * 8);" (assignment_expression "local_20 = (fragS **)(nbytes * 8)" identifier = (cast_expression "(fragS **)(nbytes * 8)" ( (type_descriptor "fragS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(nbytes * 8)" ( (binary_expression "nbytes * 8" identifier * number_literal) )))) ;) (expression_statement "uVar9 = -1 << ((byte)local_20 & 0x1f);" (assignment_expression "uVar9 = -1 << ((byte)local_20 & 0x1f)" identifier = (binary_expression "-1 << ((byte)local_20 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_20 & 0x1f)" ( (binary_expression "(byte)local_20 & 0x1f" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10);" (assignment_expression "ppaVar11 = (segT *)(~uVar9 & (uint)ppaVar10)" identifier = (cast_expression "(segT *)(~uVar9 & (uint)ppaVar10)" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~uVar9 & (uint)ppaVar10)" ( (binary_expression "~uVar9 & (uint)ppaVar10" (unary_expression "~uVar9" ~ identifier) & (cast_expression "(uint)ppaVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "local_24 = ppaVar11;" (assignment_expression "local_24 = ppaVar11" identifier = identifier) ;) (if_statement "if ((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))) {\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }" if (parenthesized_expression "((((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0))))" ( (binary_expression "(((uint)ppaVar10 & uVar9) != 0) &&\n           ((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))" (parenthesized_expression "(((uint)ppaVar10 & uVar9) != 0)" ( (binary_expression "((uint)ppaVar10 & uVar9) != 0" (parenthesized_expression "((uint)ppaVar10 & uVar9)" ( (binary_expression "(uint)ppaVar10 & uVar9" (cast_expression "(uint)ppaVar10" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != number_literal) )) && (parenthesized_expression "((((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)))" ( (parenthesized_expression "(((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0))" ( (binary_expression "((uint)ppaVar10 & uVar9) != uVar9 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)" (binary_expression "((uint)ppaVar10 & uVar9) != uVar9" (parenthesized_expression "((uint)ppaVar10 & uVar9)" ( (binary_expression "(uint)ppaVar10 & uVar9" (cast_expression "(uint)ppaVar10" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != identifier) || (parenthesized_expression "((1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0)" ( (binary_expression "(1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10) == 0" (parenthesized_expression "(1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10)" ( (binary_expression "1 << ((byte)local_20 - 1 & 0x1f) & (uint)ppaVar10" (binary_expression "1 << ((byte)local_20 - 1 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_20 - 1 & 0x1f)" ( (binary_expression "(byte)local_20 - 1 & 0x1f" (binary_expression "(byte)local_20 - 1" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal) ))) & (cast_expression "(uint)ppaVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) ))) )) ))) )) (compound_statement "{\n          pcVar5 = (char *)dcgettext();\n          ppaVar11 = local_24;\n          as_warn(pcVar5);\n        }" { (expression_statement "pcVar5 = (char *)dcgettext();" (assignment_expression "pcVar5 = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppaVar11 = local_24;" (assignment_expression "ppaVar11 = local_24" identifier = identifier) ;) (expression_statement "as_warn(pcVar5);" (call_expression "as_warn(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) })) })) (expression_statement "number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes);" (call_expression "number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,nbytes)" identifier (argument_list "(pcVar3,(valueT)ppaVar11,nbytes)" ( identifier , (cast_expression "(valueT)ppaVar11" ( (type_descriptor "valueT" type_identifier) ) identifier) , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((exp->field_0xd & 1) == 0) {\n      uVar6 = 0xffff;\n      local_24 = (segT *)0xffffffff;\n    }\n    else {\n      uVar6 = 0;\n      local_24 = (segT *)0x0;\n    }" if (parenthesized_expression "((exp->field_0xd & 1) == 0)" ( (binary_expression "(exp->field_0xd & 1) == 0" (parenthesized_expression "(exp->field_0xd & 1)" ( (binary_expression "exp->field_0xd & 1" (field_expression "exp->field_0xd" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar6 = 0xffff;\n      local_24 = (segT *)0xffffffff;\n    }" { (expression_statement "uVar6 = 0xffff;" (assignment_expression "uVar6 = 0xffff" identifier = number_literal) ;) (expression_statement "local_24 = (segT *)0xffffffff;" (assignment_expression "local_24 = (segT *)0xffffffff" identifier = (cast_expression "(segT *)0xffffffff" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      uVar6 = 0;\n      local_24 = (segT *)0x0;\n    }" else (compound_statement "{\n      uVar6 = 0;\n      local_24 = (segT *)0x0;\n    }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "local_24 = (segT *)0x0;" (assignment_expression "local_24 = (segT *)0x0" identifier = (cast_expression "(segT *)0x0" ( (type_descriptor "segT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if ((int)ppaVar10 < 0) {\n      uVar9 = 4;\n      iVar7 = 2;\n    }\n    else {\n      uVar9 = 6;\n      iVar7 = 3;\n      DAT_00084884 = uVar6;\n    }" if (parenthesized_expression "((int)ppaVar10 < 0)" ( (binary_expression "(int)ppaVar10 < 0" (cast_expression "(int)ppaVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      uVar9 = 4;\n      iVar7 = 2;\n    }" { (expression_statement "uVar9 = 4;" (assignment_expression "uVar9 = 4" identifier = number_literal) ;) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      uVar9 = 6;\n      iVar7 = 3;\n      DAT_00084884 = uVar6;\n    }" else (compound_statement "{\n      uVar9 = 6;\n      iVar7 = 3;\n      DAT_00084884 = uVar6;\n    }" { (expression_statement "uVar9 = 6;" (assignment_expression "uVar9 = 6" identifier = number_literal) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "DAT_00084884 = uVar6;" (assignment_expression "DAT_00084884 = uVar6" identifier = identifier) ;) }))) (expression_statement "local_20 = (fragS **)&generic_bignum;" (assignment_expression "local_20 = (fragS **)&generic_bignum" identifier = (cast_expression "(fragS **)&generic_bignum" ( (type_descriptor "fragS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&generic_bignum" & identifier))) ;) (expression_statement "_generic_bignum = ppaVar10;" (assignment_expression "_generic_bignum = ppaVar10" identifier = identifier) ;) (expression_statement "exp->field_0xc = 6;" (assignment_expression "exp->field_0xc = 6" (field_expression "exp->field_0xc" identifier -> field_identifier) = number_literal) ;) (expression_statement "exp->X_add_number = iVar7;" (assignment_expression "exp->X_add_number = iVar7" (field_expression "exp->X_add_number" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar20 = nbytes;" (assignment_expression "uVar20 = nbytes" identifier = identifier) ;) (if_statement "if (uVar9 <= nbytes) goto LAB_0002f698;" if (parenthesized_expression "(uVar9 <= nbytes)" ( (binary_expression "uVar9 <= nbytes" identifier <= identifier) )) (goto_statement "goto LAB_0002f698;" goto statement_identifier ;)) (expression_statement "uVar9 = 2;" (assignment_expression "uVar9 = 2" identifier = number_literal) ;) (expression_statement "uVar20 = 5;" (assignment_expression "uVar20 = 5" identifier = number_literal) ;) (labeled_statement "LAB_0002f669:\n    iVar12 = uVar9 - 1;" statement_identifier : (expression_statement "iVar12 = uVar9 - 1;" (assignment_expression "iVar12 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;)) (expression_statement "psVar1 = (short *)(&generic_bignum + iVar12);" (assignment_expression "psVar1 = (short *)(&generic_bignum + iVar12)" identifier = (cast_expression "(short *)(&generic_bignum + iVar12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&generic_bignum + iVar12)" ( (binary_expression "&generic_bignum + iVar12" (pointer_expression "&generic_bignum" & identifier) + identifier) )))) ;) (expression_statement "local_20 = (fragS **)CONCAT22(8,*psVar1);" (assignment_expression "local_20 = (fragS **)CONCAT22(8,*psVar1)" identifier = (cast_expression "(fragS **)CONCAT22(8,*psVar1)" ( (type_descriptor "fragS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "CONCAT22(8,*psVar1)" identifier (argument_list "(8,*psVar1)" ( number_literal , (pointer_expression "*psVar1" * identifier) ))))) ;) (do_statement "do {\n      iVar12 = iVar12 + 1;\n      uVar9 = uVar20;\n      if (iVar7 <= iVar12) goto LAB_0002f698;\n    } while ((&generic_bignum)[iVar12] == *psVar1 >> 0xf);" do (compound_statement "{\n      iVar12 = iVar12 + 1;\n      uVar9 = uVar20;\n      if (iVar7 <= iVar12) goto LAB_0002f698;\n    }" { (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = uVar20;" (assignment_expression "uVar9 = uVar20" identifier = identifier) ;) (if_statement "if (iVar7 <= iVar12) goto LAB_0002f698;" if (parenthesized_expression "(iVar7 <= iVar12)" ( (binary_expression "iVar7 <= iVar12" identifier <= identifier) )) (goto_statement "goto LAB_0002f698;" goto statement_identifier ;)) }) while (parenthesized_expression "((&generic_bignum)[iVar12] == *psVar1 >> 0xf)" ( (binary_expression "(&generic_bignum)[iVar12] == *psVar1 >> 0xf" (subscript_expression "(&generic_bignum)[iVar12]" (parenthesized_expression "(&generic_bignum)" ( (pointer_expression "&generic_bignum" & identifier) )) [ identifier ]) == (binary_expression "*psVar1 >> 0xf" (pointer_expression "*psVar1" * identifier) >> number_literal)) )) ;) (labeled_statement "LAB_0002fb98:\n    pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20);" statement_identifier : (expression_statement "pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20);" (assignment_expression "pcVar5 = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20)" identifier = (cast_expression "(char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20)" identifier (argument_list "(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                uVar20)" ( number_literal , (string_literal ""bignum truncated to %d byte"" " string_content ") , (string_literal ""bignum truncated to %d bytes"" " string_content ") , identifier ))))) ;)) (expression_statement "as_warn(pcVar5);" (call_expression "as_warn(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "uVar9 = nbytes;" (assignment_expression "uVar9 = nbytes" identifier = identifier) ;) }))) (labeled_statement "LAB_0002fb25:\n  uVar20 = nbytes;" statement_identifier : (expression_statement "uVar20 = nbytes;" (assignment_expression "uVar20 = nbytes" identifier = identifier) ;)) (if_statement "if (nbytes == 1) {\nLAB_0002fb38:\n    local_20 = (fragS **)&generic_bignum;\n    number_to_chars_littleendian(pcVar3,(uint)_generic_bignum & 0xffff,1);\n    return;\n  }" if (parenthesized_expression "(nbytes == 1)" ( (binary_expression "nbytes == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002fb38:\n    local_20 = (fragS **)&generic_bignum;\n    number_to_chars_littleendian(pcVar3,(uint)_generic_bignum & 0xffff,1);\n    return;\n  }" { (labeled_statement "LAB_0002fb38:\n    local_20 = (fragS **)&generic_bignum;" statement_identifier : (expression_statement "local_20 = (fragS **)&generic_bignum;" (assignment_expression "local_20 = (fragS **)&generic_bignum" identifier = (cast_expression "(fragS **)&generic_bignum" ( (type_descriptor "fragS **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&generic_bignum" & identifier))) ;)) (expression_statement "number_to_chars_littleendian(pcVar3,(uint)_generic_bignum & 0xffff,1);" (call_expression "number_to_chars_littleendian(pcVar3,(uint)_generic_bignum & 0xffff,1)" identifier (argument_list "(pcVar3,(uint)_generic_bignum & 0xffff,1)" ( identifier , (binary_expression "(uint)_generic_bignum & 0xffff" (cast_expression "(uint)_generic_bignum" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) , number_literal ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0002f698:\n  ppaVar10 = local_24;" statement_identifier : (expression_statement "ppaVar10 = local_24;" (assignment_expression "ppaVar10 = local_24" identifier = identifier) ;)) (if_statement "if ((uVar20 & 1) == 0) {\n    if (target_big_endian == 0) {\n      if (1 < uVar9) {\n        puVar13 = &generic_bignum;\n        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;\n        pcVar17 = pcVar3;\n        do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);\n      }\n      while (ppaVar11 = local_24, 1 < uVar20) {\n        local_24 = ppaVar10;\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        ppaVar10 = local_24;\n        local_24 = ppaVar11;\n        uVar20 = nbytes;\n      }\n    }\n    else {\n      while (uVar9 < uVar20) {\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }\n      puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));\n      if (1 < uVar9) {\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }\n    }\n    return;\n  }" if (parenthesized_expression "((uVar20 & 1) == 0)" ( (binary_expression "(uVar20 & 1) == 0" (parenthesized_expression "(uVar20 & 1)" ( (binary_expression "uVar20 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if (target_big_endian == 0) {\n      if (1 < uVar9) {\n        puVar13 = &generic_bignum;\n        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;\n        pcVar17 = pcVar3;\n        do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);\n      }\n      while (ppaVar11 = local_24, 1 < uVar20) {\n        local_24 = ppaVar10;\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        ppaVar10 = local_24;\n        local_24 = ppaVar11;\n        uVar20 = nbytes;\n      }\n    }\n    else {\n      while (uVar9 < uVar20) {\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }\n      puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));\n      if (1 < uVar9) {\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }\n    }\n    return;\n  }" { (if_statement "if (target_big_endian == 0) {\n      if (1 < uVar9) {\n        puVar13 = &generic_bignum;\n        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;\n        pcVar17 = pcVar3;\n        do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);\n      }\n      while (ppaVar11 = local_24, 1 < uVar20) {\n        local_24 = ppaVar10;\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        ppaVar10 = local_24;\n        local_24 = ppaVar11;\n        uVar20 = nbytes;\n      }\n    }\n    else {\n      while (uVar9 < uVar20) {\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }\n      puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));\n      if (1 < uVar9) {\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }\n    }" if (parenthesized_expression "(target_big_endian == 0)" ( (binary_expression "target_big_endian == 0" identifier == number_literal) )) (compound_statement "{\n      if (1 < uVar9) {\n        puVar13 = &generic_bignum;\n        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;\n        pcVar17 = pcVar3;\n        do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);\n      }\n      while (ppaVar11 = local_24, 1 < uVar20) {\n        local_24 = ppaVar10;\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        ppaVar10 = local_24;\n        local_24 = ppaVar11;\n        uVar20 = nbytes;\n      }\n    }" { (if_statement "if (1 < uVar9) {\n        puVar13 = &generic_bignum;\n        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;\n        pcVar17 = pcVar3;\n        do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);\n      }" if (parenthesized_expression "(1 < uVar9)" ( (binary_expression "1 < uVar9" number_literal < identifier) )) (compound_statement "{\n        puVar13 = &generic_bignum;\n        pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;\n        pcVar17 = pcVar3;\n        do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);\n      }" { (expression_statement "puVar13 = &generic_bignum;" (assignment_expression "puVar13 = &generic_bignum" identifier = (pointer_expression "&generic_bignum" & identifier)) ;) (expression_statement "pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2;" (assignment_expression "pcVar5 = pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2" identifier = (binary_expression "pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2" (binary_expression "pcVar3 + (uVar9 - 2 & 0xfffffffe)" identifier + (parenthesized_expression "(uVar9 - 2 & 0xfffffffe)" ( (binary_expression "uVar9 - 2 & 0xfffffffe" (binary_expression "uVar9 - 2" identifier - number_literal) & number_literal) ))) + number_literal)) ;) (expression_statement "pcVar17 = pcVar3;" (assignment_expression "pcVar17 = pcVar3" identifier = identifier) ;) (do_statement "do {\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        } while (pcVar15 != pcVar5);" do (compound_statement "{\n          uVar18 = *puVar13;\n          puVar13 = puVar13 + 1;\n          pcVar15 = pcVar17 + 2;\n          number_to_chars_littleendian(pcVar17,(uint)uVar18,2);\n          nbytes = nbytes - 2;\n          pcVar17 = pcVar15;\n          pcVar3 = pcVar5;\n          ppaVar10 = local_24;\n          uVar20 = nbytes;\n        }" { (expression_statement "uVar18 = *puVar13;" (assignment_expression "uVar18 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (expression_statement "pcVar15 = pcVar17 + 2;" (assignment_expression "pcVar15 = pcVar17 + 2" identifier = (binary_expression "pcVar17 + 2" identifier + number_literal)) ;) (expression_statement "number_to_chars_littleendian(pcVar17,(uint)uVar18,2);" (call_expression "number_to_chars_littleendian(pcVar17,(uint)uVar18,2)" identifier (argument_list "(pcVar17,(uint)uVar18,2)" ( identifier , (cast_expression "(uint)uVar18" ( (type_descriptor "uint" type_identifier) ) identifier) , number_literal ))) ;) (expression_statement "nbytes = nbytes - 2;" (assignment_expression "nbytes = nbytes - 2" identifier = (binary_expression "nbytes - 2" identifier - number_literal)) ;) (expression_statement "pcVar17 = pcVar15;" (assignment_expression "pcVar17 = pcVar15" identifier = identifier) ;) (expression_statement "pcVar3 = pcVar5;" (assignment_expression "pcVar3 = pcVar5" identifier = identifier) ;) (expression_statement "ppaVar10 = local_24;" (assignment_expression "ppaVar10 = local_24" identifier = identifier) ;) (expression_statement "uVar20 = nbytes;" (assignment_expression "uVar20 = nbytes" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar15 != pcVar5)" ( (binary_expression "pcVar15 != pcVar5" identifier != identifier) )) ;) })) (while_statement "while (ppaVar11 = local_24, 1 < uVar20) {\n        local_24 = ppaVar10;\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        ppaVar10 = local_24;\n        local_24 = ppaVar11;\n        uVar20 = nbytes;\n      }" while (parenthesized_expression "(ppaVar11 = local_24, 1 < uVar20)" ( (comma_expression "ppaVar11 = local_24, 1 < uVar20" (assignment_expression "ppaVar11 = local_24" identifier = identifier) , (binary_expression "1 < uVar20" number_literal < identifier)) )) (compound_statement "{\n        local_24 = ppaVar10;\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        ppaVar10 = local_24;\n        local_24 = ppaVar11;\n        uVar20 = nbytes;\n      }" { (expression_statement "local_24 = ppaVar10;" (assignment_expression "local_24 = ppaVar10" identifier = identifier) ;) (expression_statement "number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2);" (call_expression "number_to_chars_littleendian(pcVar3,(valueT)ppaVar11,2)" identifier (argument_list "(pcVar3,(valueT)ppaVar11,2)" ( identifier , (cast_expression "(valueT)ppaVar11" ( (type_descriptor "valueT" type_identifier) ) identifier) , number_literal ))) ;) (expression_statement "nbytes = nbytes - 2;" (assignment_expression "nbytes = nbytes - 2" identifier = (binary_expression "nbytes - 2" identifier - number_literal)) ;) (expression_statement "pcVar3 = pcVar3 + 2;" (assignment_expression "pcVar3 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (expression_statement "ppaVar10 = local_24;" (assignment_expression "ppaVar10 = local_24" identifier = identifier) ;) (expression_statement "local_24 = ppaVar11;" (assignment_expression "local_24 = ppaVar11" identifier = identifier) ;) (expression_statement "uVar20 = nbytes;" (assignment_expression "uVar20 = nbytes" identifier = identifier) ;) })) }) (else_clause "else {\n      while (uVar9 < uVar20) {\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }\n      puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));\n      if (1 < uVar9) {\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }\n    }" else (compound_statement "{\n      while (uVar9 < uVar20) {\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }\n      puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));\n      if (1 < uVar9) {\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }\n    }" { (while_statement "while (uVar9 < uVar20) {\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }" while (parenthesized_expression "(uVar9 < uVar20)" ( (binary_expression "uVar9 < uVar20" identifier < identifier) )) (compound_statement "{\n        number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);\n        nbytes = nbytes - 2;\n        pcVar3 = pcVar3 + 2;\n        uVar20 = nbytes;\n      }" { (expression_statement "number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2);" (call_expression "number_to_chars_littleendian(pcVar3,(valueT)ppaVar10,2)" identifier (argument_list "(pcVar3,(valueT)ppaVar10,2)" ( identifier , (cast_expression "(valueT)ppaVar10" ( (type_descriptor "valueT" type_identifier) ) identifier) , number_literal ))) ;) (expression_statement "nbytes = nbytes - 2;" (assignment_expression "nbytes = nbytes - 2" identifier = (binary_expression "nbytes - 2" identifier - number_literal)) ;) (expression_statement "pcVar3 = pcVar3 + 2;" (assignment_expression "pcVar3 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (expression_statement "uVar20 = nbytes;" (assignment_expression "uVar20 = nbytes" identifier = identifier) ;) })) (expression_statement "puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe));" (assignment_expression "puVar13 = (ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe))" identifier = (cast_expression "(ushort *)(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe))" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe))" ( (binary_expression "PTR_generic_bignum_0007afa0 + (uVar9 & 0xfffffffe)" identifier + (parenthesized_expression "(uVar9 & 0xfffffffe)" ( (binary_expression "uVar9 & 0xfffffffe" identifier & number_literal) ))) )))) ;) (if_statement "if (1 < uVar9) {\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }" if (parenthesized_expression "(1 < uVar9)" ( (binary_expression "1 < uVar9" number_literal < identifier) )) (compound_statement "{\n        pcVar5 = pcVar3;\n        do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);\n      }" { (expression_statement "pcVar5 = pcVar3;" (assignment_expression "pcVar5 = pcVar3" identifier = identifier) ;) (do_statement "do {\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        } while (pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2);" do (compound_statement "{\n          puVar13 = puVar13 + -1;\n          pcVar17 = pcVar5 + 2;\n          number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);\n          pcVar5 = pcVar17;\n        }" { (expression_statement "puVar13 = puVar13 + -1;" (assignment_expression "puVar13 = puVar13 + -1" identifier = (binary_expression "puVar13 + -1" identifier + number_literal)) ;) (expression_statement "pcVar17 = pcVar5 + 2;" (assignment_expression "pcVar17 = pcVar5 + 2" identifier = (binary_expression "pcVar5 + 2" identifier + number_literal)) ;) (expression_statement "number_to_chars_littleendian(pcVar5,(uint)*puVar13,2);" (call_expression "number_to_chars_littleendian(pcVar5,(uint)*puVar13,2)" identifier (argument_list "(pcVar5,(uint)*puVar13,2)" ( identifier , (binary_expression "(uint)*puVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier) , number_literal ))) ;) (expression_statement "pcVar5 = pcVar17;" (assignment_expression "pcVar5 = pcVar17" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2)" ( (binary_expression "pcVar17 != pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2" identifier != (binary_expression "pcVar3 + (uVar9 - 2 & 0xfffffffe) + 2" (binary_expression "pcVar3 + (uVar9 - 2 & 0xfffffffe)" identifier + (parenthesized_expression "(uVar9 - 2 & 0xfffffffe)" ( (binary_expression "uVar9 - 2 & 0xfffffffe" (binary_expression "uVar9 - 2" identifier - number_literal) & number_literal) ))) + number_literal)) )) ;) })) }))) (return_statement "return;" return ;) })) comment (expression_statement "as_abort("../../gas/read.c",0x1180,"emit_expr_with_reloc");" (call_expression "as_abort("../../gas/read.c",0x1180,"emit_expr_with_reloc")" identifier (argument_list "("../../gas/read.c",0x1180,"emit_expr_with_reloc")" ( (string_literal ""../../gas/read.c"" " string_content ") , number_literal , (string_literal ""emit_expr_with_reloc"" " string_content ") ))) ;) })))
(translation_unit "void FUN_0002f3e0(char *param_1,char *param_2,char *param_3)\n\n{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  undefined2 uVar4;\n  int iVar5;\n  int extraout_ECX;\n  undefined4 *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int *piVar9;\n  ushort *puVar10;\n  byte *pbVar11;\n  char *pcVar12;\n  ushort *puVar13;\n  char *pcVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  char *pcVar17;\n  char *pcVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char *local_3c;\n  int *piStack_38;\n  int *piStack_34;\n  int iStack_30;\n  undefined1 auStack_2c [8];\n  int *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2f3e9;\n  if (DAT_000846e8 != 0) {\n    return;\n  }\n  uVar19 = auStack_2c < (undefined1 *)0xc;\n  uVar21 = &stack0x00000000 == (undefined1 *)0x38;\n  local_3c = param_2;\n  FUN_00023780();\n  DAT_00084a50 = FUN_00023b00();\n  iVar5 = 6;\n  local_20 = &DAT_0008482c;\n  DAT_00084a5c = DAT_0008482c;\n  local_24 = (int *)&DAT_000846fc;\n  pbVar2 = (byte *)*DAT_000846fc;\n  pbVar11 = pbVar2;\n  pbVar16 = (byte *)".line";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);\n  bVar20 = false;\n  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n  if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }\nLAB_0002f49a:\n  iVar5 = 7;\n  pbVar11 = (byte *)".debug";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }\n  piStack_38 = (int *)&param_2;\n  local_3c = param_1;\n  iVar5 = FUN_0001f7b0();\n  piVar8 = local_24;\n  if (iVar5 != 0) {\n    return;\n  }\n  bVar23 = param_1[0xc];\n  if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }\nLAB_0002fb25:\n  pcVar18 = param_2;\n  if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }\nLAB_0002f698:\n  piVar8 = local_24;\n  if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }\n  piStack_34 = (int *)0x5cc0c;\n  local_3c = "../../gas/read.c";\n  piStack_38 = (int *)0x1180;\n                    \n  FUN_0002aaa0();\n}\n\n" (function_definition "void FUN_0002f3e0(char *param_1,char *param_2,char *param_3)\n\n{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  undefined2 uVar4;\n  int iVar5;\n  int extraout_ECX;\n  undefined4 *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int *piVar9;\n  ushort *puVar10;\n  byte *pbVar11;\n  char *pcVar12;\n  ushort *puVar13;\n  char *pcVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  char *pcVar17;\n  char *pcVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char *local_3c;\n  int *piStack_38;\n  int *piStack_34;\n  int iStack_30;\n  undefined1 auStack_2c [8];\n  int *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2f3e9;\n  if (DAT_000846e8 != 0) {\n    return;\n  }\n  uVar19 = auStack_2c < (undefined1 *)0xc;\n  uVar21 = &stack0x00000000 == (undefined1 *)0x38;\n  local_3c = param_2;\n  FUN_00023780();\n  DAT_00084a50 = FUN_00023b00();\n  iVar5 = 6;\n  local_20 = &DAT_0008482c;\n  DAT_00084a5c = DAT_0008482c;\n  local_24 = (int *)&DAT_000846fc;\n  pbVar2 = (byte *)*DAT_000846fc;\n  pbVar11 = pbVar2;\n  pbVar16 = (byte *)".line";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);\n  bVar20 = false;\n  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n  if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }\nLAB_0002f49a:\n  iVar5 = 7;\n  pbVar11 = (byte *)".debug";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }\n  piStack_38 = (int *)&param_2;\n  local_3c = param_1;\n  iVar5 = FUN_0001f7b0();\n  piVar8 = local_24;\n  if (iVar5 != 0) {\n    return;\n  }\n  bVar23 = param_1[0xc];\n  if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }\nLAB_0002fb25:\n  pcVar18 = param_2;\n  if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }\nLAB_0002f698:\n  piVar8 = local_24;\n  if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }\n  piStack_34 = (int *)0x5cc0c;\n  local_3c = "../../gas/read.c";\n  piStack_38 = (int *)0x1180;\n                    \n  FUN_0002aaa0();\n}" primitive_type (function_declarator "FUN_0002f3e0(char *param_1,char *param_2,char *param_3)" identifier (parameter_list "(char *param_1,char *param_2,char *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  undefined2 uVar4;\n  int iVar5;\n  int extraout_ECX;\n  undefined4 *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int *piVar9;\n  ushort *puVar10;\n  byte *pbVar11;\n  char *pcVar12;\n  ushort *puVar13;\n  char *pcVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  char *pcVar17;\n  char *pcVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char *local_3c;\n  int *piStack_38;\n  int *piStack_34;\n  int iStack_30;\n  undefined1 auStack_2c [8];\n  int *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2f3e9;\n  if (DAT_000846e8 != 0) {\n    return;\n  }\n  uVar19 = auStack_2c < (undefined1 *)0xc;\n  uVar21 = &stack0x00000000 == (undefined1 *)0x38;\n  local_3c = param_2;\n  FUN_00023780();\n  DAT_00084a50 = FUN_00023b00();\n  iVar5 = 6;\n  local_20 = &DAT_0008482c;\n  DAT_00084a5c = DAT_0008482c;\n  local_24 = (int *)&DAT_000846fc;\n  pbVar2 = (byte *)*DAT_000846fc;\n  pbVar11 = pbVar2;\n  pbVar16 = (byte *)".line";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);\n  bVar20 = false;\n  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n  if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }\nLAB_0002f49a:\n  iVar5 = 7;\n  pbVar11 = (byte *)".debug";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }\n  piStack_38 = (int *)&param_2;\n  local_3c = param_1;\n  iVar5 = FUN_0001f7b0();\n  piVar8 = local_24;\n  if (iVar5 != 0) {\n    return;\n  }\n  bVar23 = param_1[0xc];\n  if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }\nLAB_0002fb25:\n  pcVar18 = param_2;\n  if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }\nLAB_0002f698:\n  piVar8 = local_24;\n  if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }\n  piStack_34 = (int *)0x5cc0c;\n  local_3c = "../../gas/read.c";\n  piStack_38 = (int *)0x1180;\n                    \n  FUN_0002aaa0();\n}" { (declaration "short *psVar1;" (sized_type_specifier "short" short) (pointer_declarator "*psVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined2 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "ushort *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ushort *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "ushort uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "undefined1 uVar21;" type_identifier identifier ;) (declaration "bool bVar22;" primitive_type identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "char *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "int *piStack_38;" primitive_type (pointer_declarator "*piStack_38" * identifier) ;) (declaration "int *piStack_34;" primitive_type (pointer_declarator "*piStack_34" * identifier) ;) (declaration "int iStack_30;" primitive_type identifier ;) (declaration "undefined1 auStack_2c [8];" type_identifier (array_declarator "auStack_2c [8]" identifier [ number_literal ]) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x2f3e9;" (assignment_expression "uStack_14 = 0x2f3e9" identifier = number_literal) ;) (if_statement "if (DAT_000846e8 != 0) {\n    return;\n  }" if (parenthesized_expression "(DAT_000846e8 != 0)" ( (binary_expression "DAT_000846e8 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar19 = auStack_2c < (undefined1 *)0xc;" (assignment_expression "uVar19 = auStack_2c < (undefined1 *)0xc" identifier = (binary_expression "auStack_2c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar21 = &stack0x00000000 == (undefined1 *)0x38;" (assignment_expression "uVar21 = &stack0x00000000 == (undefined1 *)0x38" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x38" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x38" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" identifier = identifier) ;) (expression_statement "FUN_00023780();" (call_expression "FUN_00023780()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00084a50 = FUN_00023b00();" (assignment_expression "DAT_00084a50 = FUN_00023b00()" identifier = (call_expression "FUN_00023b00()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" identifier = number_literal) ;) (expression_statement "local_20 = &DAT_0008482c;" (assignment_expression "local_20 = &DAT_0008482c" identifier = (pointer_expression "&DAT_0008482c" & identifier)) ;) (expression_statement "DAT_00084a5c = DAT_0008482c;" (assignment_expression "DAT_00084a5c = DAT_0008482c" identifier = identifier) ;) (expression_statement "local_24 = (int *)&DAT_000846fc;" (assignment_expression "local_24 = (int *)&DAT_000846fc" identifier = (cast_expression "(int *)&DAT_000846fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000846fc" & identifier))) ;) (expression_statement "pbVar2 = (byte *)*DAT_000846fc;" (assignment_expression "pbVar2 = (byte *)*DAT_000846fc" identifier = (cast_expression "(byte *)*DAT_000846fc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000846fc" * identifier))) ;) (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)".line";" (assignment_expression "pbVar16 = (byte *)".line"" identifier = (cast_expression "(byte *)".line"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".line"" " string_content "))) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = *pbVar11 < *pbVar16;" (assignment_expression "uVar19 = *pbVar11 < *pbVar16" identifier = (binary_expression "*pbVar11 < *pbVar16" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "uVar21 = *pbVar11 == *pbVar16;" (assignment_expression "uVar21 = *pbVar11 == *pbVar16" identifier = (binary_expression "*pbVar11 == *pbVar16" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar16" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar21)" ( (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;" (assignment_expression "bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19" identifier = (binary_expression "(!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar21)" ( (binary_expression "!(bool)uVar19 && !(bool)uVar21" (unary_expression "!(bool)uVar19" ! (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar21" ! (cast_expression "(bool)uVar21" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar19" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }" { (expression_statement "local_3c = DAT_0007b2a0;" (assignment_expression "local_3c = DAT_0007b2a0" identifier = identifier) ;) (if_statement "if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }" if (parenthesized_expression "(((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2))" ( (binary_expression "((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)" (parenthesized_expression "((int)DAT_0007b2a0 < 0)" ( (binary_expression "(int)DAT_0007b2a0 < 0" (cast_expression "(int)DAT_0007b2a0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(param_2 != (char *)0x2)" ( (binary_expression "param_2 != (char *)0x2" identifier != (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }" { (expression_statement "bVar20 = param_2 < (char *)0x4;" (assignment_expression "bVar20 = param_2 < (char *)0x4" identifier = (binary_expression "param_2 < (char *)0x4" identifier < (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "bVar22 = param_2 == (char *)0x4;" (assignment_expression "bVar22 = param_2 == (char *)0x4" identifier = (binary_expression "param_2 == (char *)0x4" identifier == (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }" { (expression_statement "bVar20 = (byte)param_1[0xc] < 2;" (assignment_expression "bVar20 = (byte)param_1[0xc] < 2" identifier = (binary_expression "(byte)param_1[0xc] < 2" (cast_expression "(byte)param_1[0xc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ])) < number_literal)) ;) (expression_statement "bVar22 = param_1[0xc] == 2;" (assignment_expression "bVar22 = param_1[0xc] == 2" identifier = (binary_expression "param_1[0xc] == 2" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) == number_literal)) ;) (if_statement "if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }" if (parenthesized_expression "(bVar22)" ( identifier )) (compound_statement "{\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }" { (expression_statement "DAT_0007b2a0 = *(char **)(param_1 + 8);" (assignment_expression "DAT_0007b2a0 = *(char **)(param_1 + 8)" identifier = (pointer_expression "*(char **)(param_1 + 8)" * (cast_expression "(char **)(param_1 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar22 = DAT_0007b2a0 == (char *)0x0;" (assignment_expression "bVar22 = DAT_0007b2a0 == (char *)0x0" identifier = (binary_expression "DAT_0007b2a0 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;" if (parenthesized_expression "(-1 < (int)DAT_0007b2a0)" ( (binary_expression "-1 < (int)DAT_0007b2a0" number_literal < (cast_expression "(int)DAT_0007b2a0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002f49a;" goto statement_identifier ;)) })) })) (goto_statement "goto LAB_0002f490;" goto statement_identifier ;) })) (expression_statement "bVar20 = (byte)param_1[0xc] < 2;" (assignment_expression "bVar20 = (byte)param_1[0xc] < 2" identifier = (binary_expression "(byte)param_1[0xc] < 2" (cast_expression "(byte)param_1[0xc]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[0xc]" identifier [ number_literal ])) < number_literal)) ;) (expression_statement "bVar22 = param_1[0xc] == 2;" (assignment_expression "bVar22 = param_1[0xc] == 2" identifier = (binary_expression "param_1[0xc] == 2" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) == number_literal)) ;) (if_statement "if (!bVar22) goto LAB_0002f490;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0002f490;" goto statement_identifier ;)) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (expression_statement "bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;" (assignment_expression "bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0" identifier = (binary_expression "(*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0" (parenthesized_expression "(*(int *)(param_1 + 8) + 1U & 0xfffeffff)" ( (binary_expression "*(int *)(param_1 + 8) + 1U & 0xfffeffff" (binary_expression "*(int *)(param_1 + 8) + 1U" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar22) goto LAB_0002f490;" if (parenthesized_expression "(!bVar22)" ( (unary_expression "!bVar22" ! identifier) )) (goto_statement "goto LAB_0002f490;" goto statement_identifier ;)) (expression_statement "local_20 = &DAT_0008482c;" (assignment_expression "local_20 = &DAT_0008482c" identifier = (pointer_expression "&DAT_0008482c" & identifier)) ;) (expression_statement "FUN_00027700();" (call_expression "FUN_00027700()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar20 = (undefined1 *)0xffffffef < &local_3c;" (assignment_expression "bVar20 = (undefined1 *)0xffffffef < &local_3c" identifier = (binary_expression "(undefined1 *)0xffffffef < &local_3c" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&local_3c" & identifier))) ;) (expression_statement "bVar22 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "bVar22 = &stack0x00000000 == (undefined1 *)0x2c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x2c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar2 = *(byte **)*local_24;" (assignment_expression "pbVar2 = *(byte **)*local_24" identifier = (pointer_expression "*(byte **)*local_24" * (cast_expression "(byte **)*local_24" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*local_24" * identifier)))) ;) }) (else_clause "else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }" else (compound_statement "{\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }" { (labeled_statement "LAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;" statement_identifier : (expression_statement "DAT_0007b2a0 = (char *)0xffffffff;" (assignment_expression "DAT_0007b2a0 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_20 = &DAT_0008482c;" (assignment_expression "local_20 = &DAT_0008482c" identifier = (pointer_expression "&DAT_0008482c" & identifier)) ;) }))) (labeled_statement "LAB_0002f49a:\n  iVar5 = 7;" statement_identifier : (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;)) (expression_statement "pbVar11 = (byte *)".debug";" (assignment_expression "pbVar11 = (byte *)".debug"" identifier = (cast_expression "(byte *)".debug"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".debug"" " string_content "))) ;) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);" do (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar20 = *pbVar2 < *pbVar11;" (assignment_expression "bVar20 = *pbVar2 < *pbVar11" identifier = (binary_expression "*pbVar2 < *pbVar11" (pointer_expression "*pbVar2" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar22 = *pbVar2 == *pbVar11;" (assignment_expression "bVar22 = *pbVar2 == *pbVar11" identifier = (binary_expression "*pbVar2 == *pbVar11" (pointer_expression "*pbVar2" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar2 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar2 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar23 * -2" identifier + (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar22)" ( identifier )) ;) (if_statement "if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }" if (parenthesized_expression "((!bVar20 && !bVar22) == bVar20)" ( (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" ( (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" ! identifier) && (unary_expression "!bVar22" ! identifier)) )) == identifier) )) (compound_statement "{\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }" { (if_statement "if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" if (parenthesized_expression "(DAT_00083c2c == 0)" ( (binary_expression "DAT_00083c2c == 0" identifier == number_literal) )) (compound_statement "{\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }" { (if_statement "if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;" if (parenthesized_expression "(((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))" ( (binary_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11)" (parenthesized_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02'))" ( (binary_expression "(param_2 != (char *)0x2) || (param_1[0xc] != '\x02')" (parenthesized_expression "(param_2 != (char *)0x2)" ( (binary_expression "param_2 != (char *)0x2" identifier != (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_1[0xc] != '\x02')" ( (binary_expression "param_1[0xc] != '\x02'" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) != (char_literal "'\x02'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(*(int *)(param_1 + 8) != 0x11)" ( (binary_expression "*(int *)(param_1 + 8) != 0x11" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (expression_statement "DAT_00083c2c = 1;" (assignment_expression "DAT_00083c2c = 1" identifier = number_literal) ;) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" identifier = number_literal) ;) }) (else_clause "else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" else (if_statement "if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" if (parenthesized_expression "(DAT_00083c2c == 1)" ( (binary_expression "DAT_00083c2c == 1" identifier == number_literal) )) (compound_statement "{\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }" { (if_statement "if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;" if (parenthesized_expression "(((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))" ( (binary_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12)" (parenthesized_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02'))" ( (binary_expression "(param_2 != (char *)0x2) || (param_1[0xc] != '\x02')" (parenthesized_expression "(param_2 != (char *)0x2)" ( (binary_expression "param_2 != (char *)0x2" identifier != (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_1[0xc] != '\x02')" ( (binary_expression "param_1[0xc] != '\x02'" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) != (char_literal "'\x02'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(*(int *)(param_1 + 8) != 0x12)" ( (binary_expression "*(int *)(param_1 + 8) != 0x12" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (expression_statement "DAT_00083c2c = 2;" (assignment_expression "DAT_00083c2c = 2" identifier = number_literal) ;) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" identifier = number_literal) ;) }) (else_clause "else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" else (if_statement "if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" if (parenthesized_expression "(DAT_00083c2c == 2)" ( (binary_expression "DAT_00083c2c == 2" identifier == number_literal) )) (compound_statement "{\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }" { (if_statement "if (param_2 != (char *)0x4) goto LAB_0002f4d8;" if (parenthesized_expression "(param_2 != (char *)0x4)" ( (binary_expression "param_2 != (char *)0x4" identifier != (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (expression_statement "DAT_00083c2c = 3;" (assignment_expression "DAT_00083c2c = 3" identifier = number_literal) ;) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" else (compound_statement "{\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" { (if_statement "if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;" if (parenthesized_expression "(((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38))))" ( (binary_expression "((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))" (parenthesized_expression "((DAT_00083c2c != 3) || (param_2 != (char *)0x2))" ( (binary_expression "(DAT_00083c2c != 3) || (param_2 != (char *)0x2)" (parenthesized_expression "(DAT_00083c2c != 3)" ( (binary_expression "DAT_00083c2c != 3" identifier != number_literal) )) || (parenthesized_expression "(param_2 != (char *)0x2)" ( (binary_expression "param_2 != (char *)0x2" identifier != (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))" ( (parenthesized_expression "(param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38))" ( (binary_expression "param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)" (binary_expression "param_1[0xc] != '\x02'" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) != (char_literal "'\x02'" ' escape_sequence ')) || (parenthesized_expression "(*(int *)(param_1 + 8) != 0x38)" ( (binary_expression "*(int *)(param_1 + 8) != 0x38" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_0002f4d8;" goto statement_identifier ;)) (expression_statement "DAT_00083c2c = 4;" (assignment_expression "DAT_00083c2c = 4" identifier = number_literal) ;) (expression_statement "DAT_00083c60 = 1;" (assignment_expression "DAT_00083c60 = 1" identifier = number_literal) ;) }))))))) }) (else_clause "else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }" else (compound_statement "{\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }" { (labeled_statement "LAB_0002f4d8:\n    DAT_00083c2c = 0;" statement_identifier : (expression_statement "DAT_00083c2c = 0;" (assignment_expression "DAT_00083c2c = 0" identifier = number_literal) ;)) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" identifier = number_literal) ;) }))) (expression_statement "piStack_38 = (int *)&param_2;" (assignment_expression "piStack_38 = (int *)&param_2" identifier = (cast_expression "(int *)&param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&param_2" & identifier))) ;) (expression_statement "local_3c = param_1;" (assignment_expression "local_3c = param_1" identifier = identifier) ;) (expression_statement "iVar5 = FUN_0001f7b0();" (assignment_expression "iVar5 = FUN_0001f7b0()" identifier = (call_expression "FUN_0001f7b0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "bVar23 = param_1[0xc];" (assignment_expression "bVar23 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (if_statement "if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }" if (parenthesized_expression "(bVar23 == 7)" ( (binary_expression "bVar23 == 7" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }" { (if_statement "if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }" if (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" ( (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }" { (expression_statement "local_3c = *(char **)param_1;" (assignment_expression "local_3c = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar5 = FUN_000396c0();" (assignment_expression "iVar5 = FUN_000396c0()" identifier = (call_expression "FUN_000396c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar5 + 0xc) == '\x06')" ( (binary_expression "*(char *)(iVar5 + 0xc) == '\x06'" (pointer_expression "*(char *)(iVar5 + 0xc)" * (cast_expression "(char *)(iVar5 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }" { (expression_statement "local_3c = *(char **)param_1;" (assignment_expression "local_3c = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar5 = FUN_000396c0();" (assignment_expression "iVar5 = FUN_000396c0()" identifier = (call_expression "FUN_000396c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }" if (parenthesized_expression "(0 < *(int *)(iVar5 + 8))" ( (binary_expression "0 < *(int *)(iVar5 + 8)" number_literal < (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) ))))) )) (compound_statement "{\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }" { (expression_statement "local_3c = *(char **)param_1;" (assignment_expression "local_3c = *(char **)param_1" identifier = (pointer_expression "*(char **)param_1" * (cast_expression "(char **)param_1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "param_1 = (char *)FUN_000396c0();" (assignment_expression "param_1 = (char *)FUN_000396c0()" identifier = (cast_expression "(char *)FUN_000396c0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000396c0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;) (expression_statement "iVar5 = *(int *)(param_1 + 8);" (assignment_expression "iVar5 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }" { (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (expression_statement "puVar10 = &DAT_00084880;" (assignment_expression "puVar10 = &DAT_00084880" identifier = (pointer_expression "&DAT_00084880" & identifier)) ;) (do_statement "do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);" do (compound_statement "{\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            }" { (expression_statement "uVar15 = *puVar10;" (assignment_expression "uVar15 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "puVar13 = puVar10 + 1;" (assignment_expression "puVar13 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar10 = (ushort)(uVar7 + (ushort)~uVar15);" (assignment_expression "*puVar10 = (ushort)(uVar7 + (ushort)~uVar15)" (pointer_expression "*puVar10" * identifier) = (call_expression "(ushort)(uVar7 + (ushort)~uVar15)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(uVar7 + (ushort)~uVar15)" ( (binary_expression "uVar7 + (ushort)~uVar15" identifier + (cast_expression "(ushort)~uVar15" ( (type_descriptor "ushort" type_identifier) ) (unary_expression "~uVar15" ~ identifier))) )))) ;) (expression_statement "uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;" (assignment_expression "uVar7 = uVar7 + (ushort)~uVar15 >> 0x10" identifier = (binary_expression "uVar7 + (ushort)~uVar15 >> 0x10" (binary_expression "uVar7 + (ushort)~uVar15" identifier + (cast_expression "(ushort)~uVar15" ( (type_descriptor "ushort" type_identifier) ) (unary_expression "~uVar15" ~ identifier))) >> number_literal)) ;) (expression_statement "puVar10 = puVar13;" (assignment_expression "puVar10 = puVar13" identifier = identifier) ;) }) while (parenthesized_expression "(&DAT_00084880 + iVar5 != puVar13)" ( (binary_expression "&DAT_00084880 + iVar5 != puVar13" (binary_expression "&DAT_00084880 + iVar5" (pointer_expression "&DAT_00084880" & identifier) + identifier) != identifier) )) ;) (expression_statement "local_24 = (int *)0xffffffff;" (assignment_expression "local_24 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002f544;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002fc48;" goto statement_identifier ;) })) })) })) (expression_statement "puVar6 = (undefined4 *)*local_24;" (assignment_expression "puVar6 = (undefined4 *)*local_24" identifier = (cast_expression "(undefined4 *)*local_24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier))) ;) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }" if (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }" { (labeled_statement "LAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;" statement_identifier : (expression_statement "piStack_38 = (int *)0x5bce0;" (assignment_expression "piStack_38 = (int *)0x5bce0" identifier = (cast_expression "(int *)0x5bce0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_0002a980();" (call_expression "FUN_0002a980()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002f8df;" goto statement_identifier ;) })) (labeled_statement "LAB_0002f7a0:\n    local_24 = (int *)0x0;" statement_identifier : (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }" statement_identifier : (if_statement "if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }" if (parenthesized_expression "((puVar6[5] & 0x103) == 1)" ( (binary_expression "(puVar6[5] & 0x103) == 1" (parenthesized_expression "(puVar6[5] & 0x103)" ( (binary_expression "puVar6[5] & 0x103" (subscript_expression "puVar6[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }" { (expression_statement "piStack_38 = (int *)0x5bc90;" (assignment_expression "piStack_38 = (int *)0x5bc90" identifier = (cast_expression "(int *)0x5bc90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar3 = (char *)*puVar6;" (assignment_expression "pcVar3 = (char *)*puVar6" identifier = (cast_expression "(char *)*puVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piStack_38 = (int *)pcVar3;" (assignment_expression "piStack_38 = (int *)pcVar3" identifier = (cast_expression "(int *)pcVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0002a980();" (call_expression "FUN_0002a980()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" identifier = identifier) ;) (expression_statement "pcVar3 = (char *)FUN_000238d0();" (assignment_expression "pcVar3 = (char *)FUN_000238d0()" identifier = (cast_expression "(char *)FUN_000238d0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000238d0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (param_3 != (char *)0x47) goto LAB_0002f730;" if (parenthesized_expression "(param_3 != (char *)0x47)" ( (binary_expression "param_3 != (char *)0x47" identifier != (cast_expression "(char *)0x47" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002f730;" goto statement_identifier ;)) (if_statement "if (bVar23 == 2) goto LAB_0002f604;" if (parenthesized_expression "(bVar23 == 2)" ( (binary_expression "bVar23 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0002f604;" goto statement_identifier ;)) (if_statement "if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" if (parenthesized_expression "(bVar23 != 6)" ( (binary_expression "bVar23 != 6" identifier != number_literal) )) (compound_statement "{\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" { (expression_statement "local_3c = (char *)0x47;" (assignment_expression "local_3c = (char *)0x47" identifier = (cast_expression "(char *)0x47" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0002f390(param_1,param_2,*local_20,pcVar3);" (call_expression "FUN_0002f390(param_1,param_2,*local_20,pcVar3)" identifier (argument_list "(param_1,param_2,*local_20,pcVar3)" ( identifier , identifier , (pointer_expression "*local_20" * identifier) , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "iStack_30 = *(int *)(param_1 + 8);" (assignment_expression "iStack_30 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = (char *)(iStack_30 * 2);" (assignment_expression "pcVar14 = (char *)(iStack_30 * 2)" identifier = (cast_expression "(char *)(iStack_30 * 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_30 * 2)" ( (binary_expression "iStack_30 * 2" identifier * number_literal) )))) ;) (if_statement "if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }" if (parenthesized_expression "(param_2 < (char *)(iStack_30 * 2))" ( (binary_expression "param_2 < (char *)(iStack_30 * 2)" identifier < (cast_expression "(char *)(iStack_30 * 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_30 * 2)" ( (binary_expression "iStack_30 * 2" identifier * number_literal) )))) )) (compound_statement "{\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }" { (expression_statement "uVar7 = (uint)param_2 >> 1;" (assignment_expression "uVar7 = (uint)param_2 >> 1" identifier = (binary_expression "(uint)param_2 >> 1" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) (if_statement "if (uVar7 != 0) goto LAB_0002f669;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002f669;" goto statement_identifier ;)) (if_statement "if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }" if (parenthesized_expression "(param_2 == (char *)0x1)" ( (binary_expression "param_2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }" { (expression_statement "local_20 = (undefined4 *)&DAT_00084880;" (assignment_expression "local_20 = (undefined4 *)&DAT_00084880" identifier = (cast_expression "(undefined4 *)&DAT_00084880" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00084880" & identifier))) ;) (expression_statement "uVar15 = (short)(DAT_00084880 << 8) >> 0xf;" (assignment_expression "uVar15 = (short)(DAT_00084880 << 8) >> 0xf" identifier = (binary_expression "(short)(DAT_00084880 << 8) >> 0xf" (cast_expression "(short)(DAT_00084880 << 8)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "(DAT_00084880 << 8)" ( (binary_expression "DAT_00084880 << 8" identifier << number_literal) ))) >> number_literal)) ;) (if_statement "if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;" if (parenthesized_expression "(((DAT_00084880 ^ uVar15) & 0xff00) != 0)" ( (binary_expression "((DAT_00084880 ^ uVar15) & 0xff00) != 0" (parenthesized_expression "((DAT_00084880 ^ uVar15) & 0xff00)" ( (binary_expression "(DAT_00084880 ^ uVar15) & 0xff00" (parenthesized_expression "(DAT_00084880 ^ uVar15)" ( (binary_expression "DAT_00084880 ^ uVar15" identifier ^ identifier) )) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0002fb1d;" goto statement_identifier ;)) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);" do (compound_statement "{\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (iStack_30 <= iVar5) goto LAB_0002fb38;" if (parenthesized_expression "(iStack_30 <= iVar5)" ( (binary_expression "iStack_30 <= iVar5" identifier <= identifier) )) (goto_statement "goto LAB_0002fb38;" goto statement_identifier ;)) }) while (parenthesized_expression "((&DAT_00084880)[iVar5] == uVar15)" ( (binary_expression "(&DAT_00084880)[iVar5] == uVar15" (subscript_expression "(&DAT_00084880)[iVar5]" (parenthesized_expression "(&DAT_00084880)" ( (pointer_expression "&DAT_00084880" & identifier) )) [ identifier ]) == identifier) )) ;) (expression_statement "pcVar18 = (char *)0x1;" (assignment_expression "pcVar18 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }" else (compound_statement "{\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }" { (labeled_statement "LAB_0002fb1d:\n        pcVar14 = param_2;" statement_identifier : (expression_statement "pcVar14 = param_2;" (assignment_expression "pcVar14 = param_2" identifier = identifier) ;)) (if_statement "if (iStack_30 < 1) goto LAB_0002fb25;" if (parenthesized_expression "(iStack_30 < 1)" ( (binary_expression "iStack_30 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0002fb25;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_0002fb98;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }" else (compound_statement "{\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }" { (if_statement "if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" if (parenthesized_expression "(bVar23 < 2)" ( (binary_expression "bVar23 < 2" identifier < number_literal) )) (compound_statement "{\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }" { (expression_statement "piStack_38 = (int *)0x5bc48;" (assignment_expression "piStack_38 = (int *)0x5bc48" identifier = (cast_expression "(int *)0x5bc48" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002f5bf:\n      param_1[8] = '\0';" statement_identifier : (expression_statement "param_1[8] = '\0';" (assignment_expression "param_1[8] = '\0'" (subscript_expression "param_1[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "param_1[9] = '\0';" (assignment_expression "param_1[9] = '\0'" (subscript_expression "param_1[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_1[10] = '\0';" (assignment_expression "param_1[10] = '\0'" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_1[0xb] = '\0';" (assignment_expression "param_1[0xb] = '\0'" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }" if (parenthesized_expression "((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "(undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150" (cast_expression "(undefined *)*local_24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier)) == (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal)) )) (compound_statement "{\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }" { (labeled_statement "LAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;" statement_identifier : (expression_statement "DAT_000848ec = DAT_000848ec + (int)param_2;" (assignment_expression "DAT_000848ec = DAT_000848ec + (int)param_2" identifier = (binary_expression "DAT_000848ec + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (return_statement "return;" return ;) })) }) (else_clause "else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" else (compound_statement "{\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" { (if_statement "if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }" if (parenthesized_expression "(bVar23 == 6)" ( (binary_expression "bVar23 == 6" identifier == number_literal) )) (compound_statement "{\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }" { (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }" if (parenthesized_expression "(0 < *(int *)(param_1 + 8))" ( (binary_expression "0 < *(int *)(param_1 + 8)" number_literal < (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }" { (labeled_statement "LAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;" statement_identifier : (expression_statement "puVar6 = (undefined4 *)*piVar8;" (assignment_expression "puVar6 = (undefined4 *)*piVar8" identifier = (cast_expression "(undefined4 *)*piVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;)) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;" if (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (goto_statement "goto LAB_0002f8c1;" goto statement_identifier ;)) (expression_statement "bVar23 = 6;" (assignment_expression "bVar23 = 6" identifier = number_literal) ;) (goto_statement "goto LAB_0002f7a8;" goto statement_identifier ;) })) (labeled_statement "LAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;" statement_identifier : (expression_statement "piStack_38 = (int *)0x59ac4;" (assignment_expression "piStack_38 = (int *)0x59ac4" identifier = (cast_expression "(int *)0x59ac4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_24 = piVar8;" (assignment_expression "local_24 = piVar8" identifier = identifier) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_0002a980();" (call_expression "FUN_0002a980()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002f5bf;" goto statement_identifier ;) })) (if_statement "if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }" if (parenthesized_expression "(bVar23 == 5)" ( (binary_expression "bVar23 == 5" identifier == number_literal) )) (compound_statement "{\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }" { (expression_statement "piStack_38 = (int *)0x5bc6c;" (assignment_expression "piStack_38 = (int *)0x5bc6c" identifier = (cast_expression "(int *)0x5bc6c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar6 = (undefined4 *)*local_24;" (assignment_expression "puVar6 = (undefined4 *)*local_24" identifier = (cast_expression "(undefined4 *)*local_24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier))) ;) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }" if (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }" { (labeled_statement "LAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;" statement_identifier : (if_statement "if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;" if (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" ( (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0002f8df;" goto statement_identifier ;))) (goto_statement "goto LAB_0002f8c1;" goto statement_identifier ;) })) }) (else_clause "else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }" else (compound_statement "{\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }" { (expression_statement "puVar6 = (undefined4 *)*local_24;" (assignment_expression "puVar6 = (undefined4 *)*local_24" identifier = (cast_expression "(undefined4 *)*local_24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_24" * identifier))) ;) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }" if (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" ( (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" identifier == (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" ( (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" identifier + number_literal) )))) )) (compound_statement "{\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }" { (if_statement "if (bVar23 != 2) goto LAB_0002f8c1;" if (parenthesized_expression "(bVar23 != 2)" ( (binary_expression "bVar23 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0002f8c1;" goto statement_identifier ;)) (goto_statement "goto LAB_0002f8b6;" goto statement_identifier ;) })) (if_statement "if (bVar23 != 2) goto LAB_0002f7a0;" if (parenthesized_expression "(bVar23 != 2)" ( (binary_expression "bVar23 != 2" identifier != number_literal) )) (goto_statement "goto LAB_0002f7a0;" goto statement_identifier ;)) }))) (if_statement "if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" ( (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }" { (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar23 = 2;" (assignment_expression "bVar23 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0002f7a8;" goto statement_identifier ;) })) }))) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" identifier = identifier) ;) (expression_statement "pcVar3 = (char *)FUN_000238d0();" (assignment_expression "pcVar3 = (char *)FUN_000238d0()" identifier = (cast_expression "(char *)FUN_000238d0()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000238d0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" if (parenthesized_expression "(param_3 != (char *)0x47)" ( (binary_expression "param_3 != (char *)0x47" identifier != (cast_expression "(char *)0x47" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" { (labeled_statement "LAB_0002f730:\n      local_3c = param_3;" statement_identifier : (expression_statement "local_3c = param_3;" (assignment_expression "local_3c = param_3" identifier = identifier) ;)) (expression_statement "FUN_0002f390(param_1,param_2,*local_20,pcVar3);" (call_expression "FUN_0002f390(param_1,param_2,*local_20,pcVar3)" identifier (argument_list "(param_1,param_2,*local_20,pcVar3)" ( identifier , identifier , (pointer_expression "*local_20" * identifier) , identifier ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);" statement_identifier : (expression_statement "piVar8 = *(int **)(param_1 + 8);" (assignment_expression "piVar8 = *(int **)(param_1 + 8)" identifier = (pointer_expression "*(int **)(param_1 + 8)" * (cast_expression "(int **)(param_1 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;)) (if_statement "if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }" if (parenthesized_expression "(param_2 < (char *)0x5)" ( (binary_expression "param_2 < (char *)0x5" identifier < (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }" { (expression_statement "piVar9 = piVar8;" (assignment_expression "piVar9 = piVar8" identifier = identifier) ;) (if_statement "if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }" if (parenthesized_expression "(param_2 != (char *)0x4)" ( (binary_expression "param_2 != (char *)0x4" identifier != (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }" { (expression_statement "local_20 = (undefined4 *)((int)param_2 * 8);" (assignment_expression "local_20 = (undefined4 *)((int)param_2 * 8)" identifier = (cast_expression "(undefined4 *)((int)param_2 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 * 8)" ( (binary_expression "(int)param_2 * 8" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "uVar7 = -1 << ((byte)local_20 & 0x1f);" (assignment_expression "uVar7 = -1 << ((byte)local_20 & 0x1f)" identifier = (binary_expression "-1 << ((byte)local_20 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_20 & 0x1f)" ( (binary_expression "(byte)local_20 & 0x1f" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "piVar9 = (int *)(~uVar7 & (uint)piVar8);" (assignment_expression "piVar9 = (int *)(~uVar7 & (uint)piVar8)" identifier = (cast_expression "(int *)(~uVar7 & (uint)piVar8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~uVar7 & (uint)piVar8)" ( (binary_expression "~uVar7 & (uint)piVar8" (unary_expression "~uVar7" ~ identifier) & (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "local_24 = piVar9;" (assignment_expression "local_24 = piVar9" identifier = identifier) ;) (if_statement "if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }" if (parenthesized_expression "((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0))))" ( (binary_expression "(((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))" (parenthesized_expression "(((uint)piVar8 & uVar7) != 0)" ( (binary_expression "((uint)piVar8 & uVar7) != 0" (parenthesized_expression "((uint)piVar8 & uVar7)" ( (binary_expression "(uint)piVar8 & uVar7" (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != number_literal) )) && (parenthesized_expression "((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))" ( (parenthesized_expression "(((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0))" ( (binary_expression "((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)" (binary_expression "((uint)piVar8 & uVar7) != uVar7" (parenthesized_expression "((uint)piVar8 & uVar7)" ( (binary_expression "(uint)piVar8 & uVar7" (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier) & identifier) )) != identifier) || (parenthesized_expression "((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)" ( (binary_expression "(1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0" (parenthesized_expression "(1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8)" ( (binary_expression "1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8" (binary_expression "1 << ((byte)local_20 - 1 & 0x1f)" number_literal << (parenthesized_expression "((byte)local_20 - 1 & 0x1f)" ( (binary_expression "(byte)local_20 - 1 & 0x1f" (binary_expression "(byte)local_20 - 1" (cast_expression "(byte)local_20" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal) ))) & (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) ))) )) ))) )) (compound_statement "{\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }" { (expression_statement "piStack_38 = (int *)0x5bcc0;" (assignment_expression "piStack_38 = (int *)0x5bcc0" identifier = (cast_expression "(int *)0x5bcc0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" identifier = (cast_expression "(int *)0x5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" identifier = (cast_expression "(char *)dcgettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar9 = local_24;" (assignment_expression "piVar9 = local_24" identifier = identifier) ;) (expression_statement "piStack_34 = local_24;" (assignment_expression "piStack_34 = local_24" identifier = identifier) ;) (expression_statement "piStack_38 = piVar8;" (assignment_expression "piStack_38 = piVar8" identifier = identifier) ;) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" identifier = identifier) ;) (expression_statement "piStack_38 = piVar9;" (assignment_expression "piStack_38 = piVar9" identifier = identifier) ;) (expression_statement "piStack_34 = (int *)param_2;" (assignment_expression "piStack_34 = (int *)param_2" identifier = (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }" if (parenthesized_expression "((param_1[0xd] & 1U) == 0)" ( (binary_expression "(param_1[0xd] & 1U) == 0" (parenthesized_expression "(param_1[0xd] & 1U)" ( (binary_expression "param_1[0xd] & 1U" (subscript_expression "param_1[0xd]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }" { (expression_statement "uVar4 = 0xffff;" (assignment_expression "uVar4 = 0xffff" identifier = number_literal) ;) (expression_statement "local_24 = (int *)0xffffffff;" (assignment_expression "local_24 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }" else (compound_statement "{\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }" if (parenthesized_expression "((int)piVar8 < 0)" ( (binary_expression "(int)piVar8 < 0" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }" { (expression_statement "pcVar14 = (char *)0x4;" (assignment_expression "pcVar14 = (char *)0x4" identifier = (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_30 = 2;" (assignment_expression "iStack_30 = 2" identifier = number_literal) ;) }) (else_clause "else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }" else (compound_statement "{\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }" { (expression_statement "pcVar14 = (char *)0x6;" (assignment_expression "pcVar14 = (char *)0x6" identifier = (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iStack_30 = 3;" (assignment_expression "iStack_30 = 3" identifier = number_literal) ;) (expression_statement "DAT_00084884 = uVar4;" (assignment_expression "DAT_00084884 = uVar4" identifier = identifier) ;) }))) (expression_statement "local_20 = (undefined4 *)&DAT_00084880;" (assignment_expression "local_20 = (undefined4 *)&DAT_00084880" identifier = (cast_expression "(undefined4 *)&DAT_00084880" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00084880" & identifier))) ;) (expression_statement "_DAT_00084880 = piVar8;" (assignment_expression "_DAT_00084880 = piVar8" identifier = identifier) ;) (expression_statement "param_1[0xc] = '\x06';" (assignment_expression "param_1[0xc] = '\x06'" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = (char_literal "'\x06'" ' escape_sequence ')) ;) (expression_statement "*(int *)(param_1 + 8) = iStack_30;" (assignment_expression "*(int *)(param_1 + 8) = iStack_30" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) (if_statement "if (pcVar14 <= param_2) goto LAB_0002f698;" if (parenthesized_expression "(pcVar14 <= param_2)" ( (binary_expression "pcVar14 <= param_2" identifier <= identifier) )) (goto_statement "goto LAB_0002f698;" goto statement_identifier ;)) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" identifier = number_literal) ;) (expression_statement "pcVar18 = (char *)0x5;" (assignment_expression "pcVar18 = (char *)0x5" identifier = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0002f669:\n    iVar5 = uVar7 - 1;" statement_identifier : (expression_statement "iVar5 = uVar7 - 1;" (assignment_expression "iVar5 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;)) (expression_statement "psVar1 = (short *)(&DAT_00084880 + iVar5);" (assignment_expression "psVar1 = (short *)(&DAT_00084880 + iVar5)" identifier = (cast_expression "(short *)(&DAT_00084880 + iVar5)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00084880 + iVar5)" ( (binary_expression "&DAT_00084880 + iVar5" (pointer_expression "&DAT_00084880" & identifier) + identifier) )))) ;) (expression_statement "local_20 = (undefined4 *)CONCAT22(8,*psVar1);" (assignment_expression "local_20 = (undefined4 *)CONCAT22(8,*psVar1)" identifier = (cast_expression "(undefined4 *)CONCAT22(8,*psVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(8,*psVar1)" identifier (argument_list "(8,*psVar1)" ( number_literal , (pointer_expression "*psVar1" * identifier) ))))) ;) (do_statement "do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);" do (compound_statement "{\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar14 = pcVar18;" (assignment_expression "pcVar14 = pcVar18" identifier = identifier) ;) (if_statement "if (iStack_30 <= iVar5) goto LAB_0002f698;" if (parenthesized_expression "(iStack_30 <= iVar5)" ( (binary_expression "iStack_30 <= iVar5" identifier <= identifier) )) (goto_statement "goto LAB_0002f698;" goto statement_identifier ;)) }) while (parenthesized_expression "((&DAT_00084880)[iVar5] == *psVar1 >> 0xf)" ( (binary_expression "(&DAT_00084880)[iVar5] == *psVar1 >> 0xf" (subscript_expression "(&DAT_00084880)[iVar5]" (parenthesized_expression "(&DAT_00084880)" ( (pointer_expression "&DAT_00084880" & identifier) )) [ identifier ]) == (binary_expression "*psVar1 >> 0xf" (pointer_expression "*psVar1" * identifier) >> number_literal)) )) ;) (labeled_statement "LAB_0002fb98:\n    local_3c = (char *)0x5;" statement_identifier : (expression_statement "local_3c = (char *)0x5;" (assignment_expression "local_3c = (char *)0x5" identifier = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);" (assignment_expression "local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" identifier = (cast_expression "(char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" identifier (argument_list "(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" ( number_literal , (string_literal ""bignum truncated to %d byte"" " string_content ") , (string_literal ""bignum truncated to %d bytes"" " string_content ") , identifier ))))) ;) (expression_statement "piStack_38 = (int *)pcVar18;" (assignment_expression "piStack_38 = (int *)pcVar18" identifier = (cast_expression "(int *)pcVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iStack_30 = extraout_ECX;" (assignment_expression "iStack_30 = extraout_ECX" identifier = identifier) ;) (expression_statement "pcVar14 = param_2;" (assignment_expression "pcVar14 = param_2" identifier = identifier) ;) }))) (labeled_statement "LAB_0002fb25:\n  pcVar18 = param_2;" statement_identifier : (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;)) (if_statement "if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }" if (parenthesized_expression "(param_2 == (char *)0x1)" ( (binary_expression "param_2 == (char *)0x1" identifier == (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }" { (labeled_statement "LAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;" statement_identifier : (expression_statement "local_20 = (undefined4 *)&DAT_00084880;" (assignment_expression "local_20 = (undefined4 *)&DAT_00084880" identifier = (cast_expression "(undefined4 *)&DAT_00084880" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00084880" & identifier))) ;)) (expression_statement "piStack_34 = (int *)0x1;" (assignment_expression "piStack_34 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);" (assignment_expression "piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff)" identifier = (cast_expression "(int *)((uint)_DAT_00084880 & 0xffff)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)_DAT_00084880 & 0xffff)" ( (binary_expression "(uint)_DAT_00084880 & 0xffff" (cast_expression "(uint)_DAT_00084880" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" identifier = identifier) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_0002f698:\n  piVar8 = local_24;" statement_identifier : (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;)) (if_statement "if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(((uint)pcVar18 & 1) == 0)" ( (binary_expression "((uint)pcVar18 & 1) == 0" (parenthesized_expression "((uint)pcVar18 & 1)" ( (binary_expression "(uint)pcVar18 & 1" (cast_expression "(uint)pcVar18" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }" { (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" identifier = identifier) ;) (if_statement "if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }" if (parenthesized_expression "(DAT_00083c1c == 0)" ( (binary_expression "DAT_00083c1c == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }" { (expression_statement "pcVar17 = pcVar3;" (assignment_expression "pcVar17 = pcVar3" identifier = identifier) ;) (if_statement "if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }" if (parenthesized_expression "((char *)0x1 < pcVar14)" ( (binary_expression "(char *)0x1 < pcVar14" (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }" { (expression_statement "puVar10 = &DAT_00084880;" (assignment_expression "puVar10 = &DAT_00084880" identifier = (pointer_expression "&DAT_00084880" & identifier)) ;) (do_statement "do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);" do (compound_statement "{\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        }" { (expression_statement "piStack_38 = (int *)(uint)*puVar10;" (assignment_expression "piStack_38 = (int *)(uint)*puVar10" identifier = (binary_expression "(int *)(uint)*puVar10" (cast_expression "(int *)(uint)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = local_3c + 2;" (assignment_expression "pcVar12 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_2 = param_2 + -2;" (assignment_expression "param_2 = param_2 + -2" identifier = (binary_expression "param_2 + -2" identifier + number_literal)) ;) (expression_statement "local_3c = pcVar12;" (assignment_expression "local_3c = pcVar12" identifier = identifier) ;) (expression_statement "pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;" (assignment_expression "pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" identifier = (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe)" identifier + (parenthesized_expression "((uint)(pcVar14 + -2) & 0xfffffffe)" ( (binary_expression "(uint)(pcVar14 + -2) & 0xfffffffe" (call_expression "(uint)(pcVar14 + -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar14 + -2)" ( (binary_expression "pcVar14 + -2" identifier + number_literal) ))) & number_literal) ))) + number_literal)) ;) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2)" ( (binary_expression "pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" identifier != (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe)" identifier + (parenthesized_expression "((uint)(pcVar14 + -2) & 0xfffffffe)" ( (binary_expression "(uint)(pcVar14 + -2) & 0xfffffffe" (call_expression "(uint)(pcVar14 + -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar14 + -2)" ( (binary_expression "pcVar14 + -2" identifier + number_literal) ))) & number_literal) ))) + number_literal)) )) ;) })) (while_statement "while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }" while (parenthesized_expression "(local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18)" ( (comma_expression "local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18" (assignment_expression "local_3c = pcVar17" identifier = identifier) , (comma_expression "piVar9 = local_24, (char *)0x1 < pcVar18" (assignment_expression "piVar9 = local_24" identifier = identifier) , (binary_expression "(char *)0x1 < pcVar18" (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier))) )) (compound_statement "{\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }" { (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_38 = local_24;" (assignment_expression "piStack_38 = local_24" identifier = identifier) ;) (expression_statement "pcVar17 = local_3c + 2;" (assignment_expression "pcVar17 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "local_24 = piVar8;" (assignment_expression "local_24 = piVar8" identifier = identifier) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_2 = param_2 + -2;" (assignment_expression "param_2 = param_2 + -2" identifier = (binary_expression "param_2 + -2" identifier + number_literal)) ;) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" identifier = identifier) ;) (expression_statement "local_24 = piVar9;" (assignment_expression "local_24 = piVar9" identifier = identifier) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) })) }) (else_clause "else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }" else (compound_statement "{\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }" { (while_statement "while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }" while (parenthesized_expression "(pcVar14 < pcVar18)" ( (binary_expression "pcVar14 < pcVar18" identifier < identifier) )) (compound_statement "{\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }" { (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piStack_38 = piVar8;" (assignment_expression "piStack_38 = piVar8" identifier = identifier) ;) (expression_statement "pcVar3 = local_3c + 2;" (assignment_expression "pcVar3 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_2 = param_2 + -2;" (assignment_expression "param_2 = param_2 + -2" identifier = (binary_expression "param_2 + -2" identifier + number_literal)) ;) (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" identifier = identifier) ;) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" identifier = identifier) ;) })) (expression_statement "puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));" (assignment_expression "puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe))" identifier = (cast_expression "(ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe))" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe))" ( (binary_expression "PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe)" identifier + (parenthesized_expression "((uint)pcVar14 & 0xfffffffe)" ( (binary_expression "(uint)pcVar14 & 0xfffffffe" (cast_expression "(uint)pcVar14" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) ))) )))) ;) (if_statement "if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }" if (parenthesized_expression "((char *)0x1 < pcVar14)" ( (binary_expression "(char *)0x1 < pcVar14" (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }" { (expression_statement "pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;" (assignment_expression "pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" identifier = (binary_expression "local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (binary_expression "local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe)" identifier + (parenthesized_expression "((uint)(pcVar14 + -2) & 0xfffffffe)" ( (binary_expression "(uint)(pcVar14 + -2) & 0xfffffffe" (call_expression "(uint)(pcVar14 + -2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar14 + -2)" ( (binary_expression "pcVar14 + -2" identifier + number_literal) ))) & number_literal) ))) + number_literal)) ;) (do_statement "do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);" do (compound_statement "{\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        }" { (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" identifier = (binary_expression "puVar10 + -1" identifier + number_literal)) ;) (expression_statement "piStack_38 = (int *)(uint)*puVar10;" (assignment_expression "piStack_38 = (int *)(uint)*puVar10" identifier = (binary_expression "(int *)(uint)*puVar10" (cast_expression "(int *)(uint)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar14 = local_3c + 2;" (assignment_expression "pcVar14 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_3c = pcVar14;" (assignment_expression "local_3c = pcVar14" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar14 != pcVar3)" ( (binary_expression "pcVar14 != pcVar3" identifier != identifier) )) ;) })) }))) (return_statement "return;" return ;) })) (expression_statement "piStack_34 = (int *)0x5cc0c;" (assignment_expression "piStack_34 = (int *)0x5cc0c" identifier = (cast_expression "(int *)0x5cc0c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = "../../gas/read.c";" (assignment_expression "local_3c = "../../gas/read.c"" identifier = (string_literal ""../../gas/read.c"" " string_content ")) ;) (expression_statement "piStack_38 = (int *)0x1180;" (assignment_expression "piStack_38 = (int *)0x1180" identifier = (cast_expression "(int *)0x1180" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0002aaa0();" (call_expression "FUN_0002aaa0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier short) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))))) }) (else_clause else (compound_statement { (labeled_statement 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 *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (unary_expression ~ IDENT))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (unary_expression ~ IDENT))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression & IDENT) + IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) == IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (binary_expression IDENT + LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (return_statement return ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (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 IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) , IDENT ))) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) )) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & IDENT) )) != IDENT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) & LIT) ))) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (pointer_expression * IDENT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) == (binary_expression (pointer_expression * IDENT) >> LIT)) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))) + LIT)) )) ;) })) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * IDENT)) ;) (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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }))) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_0002f3e0(char *param_1,char *param_2,char *param_3)\n\n{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  undefined2 uVar4;\n  int iVar5;\n  int extraout_ECX;\n  undefined4 *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int *piVar9;\n  ushort *puVar10;\n  byte *pbVar11;\n  char *pcVar12;\n  ushort *puVar13;\n  char *pcVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  char *pcVar17;\n  char *pcVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char *local_3c;\n  int *piStack_38;\n  int *piStack_34;\n  int iStack_30;\n  undefined1 auStack_2c [8];\n  int *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2f3e9;\n  if (DAT_000846e8 != 0) {\n    return;\n  }\n  uVar19 = auStack_2c < (undefined1 *)0xc;\n  uVar21 = &stack0x00000000 == (undefined1 *)0x38;\n  local_3c = param_2;\n  FUN_00023780();\n  DAT_00084a50 = FUN_00023b00();\n  iVar5 = 6;\n  local_20 = &DAT_0008482c;\n  DAT_00084a5c = DAT_0008482c;\n  local_24 = (int *)&DAT_000846fc;\n  pbVar2 = (byte *)*DAT_000846fc;\n  pbVar11 = pbVar2;\n  pbVar16 = (byte *)".line";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);\n  bVar20 = false;\n  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n  if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }\nLAB_0002f49a:\n  iVar5 = 7;\n  pbVar11 = (byte *)".debug";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }\n  piStack_38 = (int *)&param_2;\n  local_3c = param_1;\n  iVar5 = FUN_0001f7b0();\n  piVar8 = local_24;\n  if (iVar5 != 0) {\n    return;\n  }\n  bVar23 = param_1[0xc];\n  if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }\nLAB_0002fb25:\n  pcVar18 = param_2;\n  if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }\nLAB_0002f698:\n  piVar8 = local_24;\n  if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }\n  piStack_34 = (int *)0x5cc0c;\n  local_3c = "../../gas/read.c";\n  piStack_38 = (int *)0x1180;\n                    \n  FUN_0002aaa0();\n}" (primitive_type "void") (function_declarator "FUN_0002f3e0(char *param_1,char *param_2,char *param_3)" (identifier "FUN_0002f3e0") (parameter_list "(char *param_1,char *param_2,char *param_3)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  short *psVar1;\n  byte *pbVar2;\n  char *pcVar3;\n  undefined2 uVar4;\n  int iVar5;\n  int extraout_ECX;\n  undefined4 *puVar6;\n  uint uVar7;\n  int *piVar8;\n  int *piVar9;\n  ushort *puVar10;\n  byte *pbVar11;\n  char *pcVar12;\n  ushort *puVar13;\n  char *pcVar14;\n  ushort uVar15;\n  byte *pbVar16;\n  char *pcVar17;\n  char *pcVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  bool bVar22;\n  byte bVar23;\n  char *local_3c;\n  int *piStack_38;\n  int *piStack_34;\n  int iStack_30;\n  undefined1 auStack_2c [8];\n  int *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar23 = 0;\n  uStack_14 = 0x2f3e9;\n  if (DAT_000846e8 != 0) {\n    return;\n  }\n  uVar19 = auStack_2c < (undefined1 *)0xc;\n  uVar21 = &stack0x00000000 == (undefined1 *)0x38;\n  local_3c = param_2;\n  FUN_00023780();\n  DAT_00084a50 = FUN_00023b00();\n  iVar5 = 6;\n  local_20 = &DAT_0008482c;\n  DAT_00084a5c = DAT_0008482c;\n  local_24 = (int *)&DAT_000846fc;\n  pbVar2 = (byte *)*DAT_000846fc;\n  pbVar11 = pbVar2;\n  pbVar16 = (byte *)".line";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);\n  bVar20 = false;\n  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;\n  if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }\nLAB_0002f49a:\n  iVar5 = 7;\n  pbVar11 = (byte *)".debug";\n  do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);\n  if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }\n  piStack_38 = (int *)&param_2;\n  local_3c = param_1;\n  iVar5 = FUN_0001f7b0();\n  piVar8 = local_24;\n  if (iVar5 != 0) {\n    return;\n  }\n  bVar23 = param_1[0xc];\n  if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }\nLAB_0002fb25:\n  pcVar18 = param_2;\n  if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }\nLAB_0002f698:\n  piVar8 = local_24;\n  if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }\n  piStack_34 = (int *)0x5cc0c;\n  local_3c = "../../gas/read.c";\n  piStack_38 = (int *)0x1180;\n                    \n  FUN_0002aaa0();\n}" ({ "{") (declaration "short *psVar1;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*psVar1" (* "*") (identifier "psVar1")) (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined2 uVar4;" (type_identifier "undefined2") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int extraout_ECX;" (primitive_type "int") (identifier "extraout_ECX") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "ushort *puVar10;" (type_identifier "ushort") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "ushort *puVar13;" (type_identifier "ushort") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "ushort uVar15;" (type_identifier "ushort") (identifier "uVar15") (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "char *pcVar17;" (primitive_type "char") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "char *pcVar18;" (primitive_type "char") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "undefined1 uVar19;" (type_identifier "undefined1") (identifier "uVar19") (; ";")) (declaration "bool bVar20;" (primitive_type "bool") (identifier "bVar20") (; ";")) (declaration "undefined1 uVar21;" (type_identifier "undefined1") (identifier "uVar21") (; ";")) (declaration "bool bVar22;" (primitive_type "bool") (identifier "bVar22") (; ";")) (declaration "byte bVar23;" (type_identifier "byte") (identifier "bVar23") (; ";")) (declaration "char *local_3c;" (primitive_type "char") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "int *piStack_38;" (primitive_type "int") (pointer_declarator "*piStack_38" (* "*") (identifier "piStack_38")) (; ";")) (declaration "int *piStack_34;" (primitive_type "int") (pointer_declarator "*piStack_34" (* "*") (identifier "piStack_34")) (; ";")) (declaration "int iStack_30;" (primitive_type "int") (identifier "iStack_30") (; ";")) (declaration "undefined1 auStack_2c [8];" (type_identifier "undefined1") (array_declarator "auStack_2c [8]" (identifier "auStack_2c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int *local_24;" (primitive_type "int") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" (identifier "bVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x2f3e9;" (assignment_expression "uStack_14 = 0x2f3e9" (identifier "uStack_14") (= "=") (number_literal "0x2f3e9")) (; ";")) (if_statement "if (DAT_000846e8 != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_000846e8 != 0)" (( "(") (binary_expression "DAT_000846e8 != 0" (identifier "DAT_000846e8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar19 = auStack_2c < (undefined1 *)0xc;" (assignment_expression "uVar19 = auStack_2c < (undefined1 *)0xc" (identifier "uVar19") (= "=") (binary_expression "auStack_2c < (undefined1 *)0xc" (identifier "auStack_2c") (< "<") (cast_expression "(undefined1 *)0xc" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc")))) (; ";")) (expression_statement "uVar21 = &stack0x00000000 == (undefined1 *)0x38;" (assignment_expression "uVar21 = &stack0x00000000 == (undefined1 *)0x38" (identifier "uVar21") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x38" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x38" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x38")))) (; ";")) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" (identifier "local_3c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_00023780();" (call_expression "FUN_00023780()" (identifier "FUN_00023780") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_00084a50 = FUN_00023b00();" (assignment_expression "DAT_00084a50 = FUN_00023b00()" (identifier "DAT_00084a50") (= "=") (call_expression "FUN_00023b00()" (identifier "FUN_00023b00") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar5 = 6;" (assignment_expression "iVar5 = 6" (identifier "iVar5") (= "=") (number_literal "6")) (; ";")) (expression_statement "local_20 = &DAT_0008482c;" (assignment_expression "local_20 = &DAT_0008482c" (identifier "local_20") (= "=") (pointer_expression "&DAT_0008482c" (& "&") (identifier "DAT_0008482c"))) (; ";")) (expression_statement "DAT_00084a5c = DAT_0008482c;" (assignment_expression "DAT_00084a5c = DAT_0008482c" (identifier "DAT_00084a5c") (= "=") (identifier "DAT_0008482c")) (; ";")) (expression_statement "local_24 = (int *)&DAT_000846fc;" (assignment_expression "local_24 = (int *)&DAT_000846fc" (identifier "local_24") (= "=") (cast_expression "(int *)&DAT_000846fc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000846fc" (& "&") (identifier "DAT_000846fc")))) (; ";")) (expression_statement "pbVar2 = (byte *)*DAT_000846fc;" (assignment_expression "pbVar2 = (byte *)*DAT_000846fc" (identifier "pbVar2") (= "=") (cast_expression "(byte *)*DAT_000846fc" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_000846fc" (* "*") (identifier "DAT_000846fc")))) (; ";")) (expression_statement "pbVar11 = pbVar2;" (assignment_expression "pbVar11 = pbVar2" (identifier "pbVar11") (= "=") (identifier "pbVar2")) (; ";")) (expression_statement "pbVar16 = (byte *)".line";" (assignment_expression "pbVar16 = (byte *)".line"" (identifier "pbVar16") (= "=") (cast_expression "(byte *)".line"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".line"" (" """) (string_content ".line") (" """)))) (; ";")) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  } while ((bool)uVar21);" (do "do") (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    uVar19 = *pbVar11 < *pbVar16;\n    uVar21 = *pbVar11 == *pbVar16;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar19 = *pbVar11 < *pbVar16;" (assignment_expression "uVar19 = *pbVar11 < *pbVar16" (identifier "uVar19") (= "=") (binary_expression "*pbVar11 < *pbVar16" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "uVar21 = *pbVar11 == *pbVar16;" (assignment_expression "uVar21 = *pbVar11 == *pbVar16" (identifier "uVar21") (= "=") (binary_expression "*pbVar11 == *pbVar16" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar23 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar16 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar16 + (uint)bVar23 * -2" (identifier "pbVar16") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar21)" (( "(") (cast_expression "(bool)uVar21" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar21")) () ")")) (; ";")) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" (identifier "bVar20") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;" (assignment_expression "bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19" (identifier "bVar22") (= "=") (binary_expression "(!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19" (parenthesized_expression "(!(bool)uVar19 && !(bool)uVar21)" (( "(") (binary_expression "!(bool)uVar19 && !(bool)uVar21" (unary_expression "!(bool)uVar19" (! "!") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19"))) (&& "&&") (unary_expression "!(bool)uVar21" (! "!") (cast_expression "(bool)uVar21" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar21")))) () ")")) (== "==") (cast_expression "(bool)uVar19" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar19")))) (; ";")) (if_statement "if (bVar22) {\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }\n  else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\n    local_3c = DAT_0007b2a0;\n    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }\n    bVar20 = (byte)param_1[0xc] < 2;\n    bVar22 = param_1[0xc] == 2;\n    if (!bVar22) goto LAB_0002f490;\n    bVar20 = false;\n    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;\n    if (!bVar22) goto LAB_0002f490;\n    local_20 = &DAT_0008482c;\n    FUN_00027700();\n    bVar20 = (undefined1 *)0xffffffef < &local_3c;\n    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;\n    pbVar2 = *(byte **)*local_24;\n  }" ({ "{") (expression_statement "local_3c = DAT_0007b2a0;" (assignment_expression "local_3c = DAT_0007b2a0" (identifier "local_3c") (= "=") (identifier "DAT_0007b2a0")) (; ";")) (if_statement "if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }" (if "if") (parenthesized_expression "(((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2))" (( "(") (binary_expression "((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)" (parenthesized_expression "((int)DAT_0007b2a0 < 0)" (( "(") (binary_expression "(int)DAT_0007b2a0 < 0" (cast_expression "(int)DAT_0007b2a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0007b2a0")) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_2 != (char *)0x2)" (( "(") (binary_expression "param_2 != (char *)0x2" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")"))) () ")")) (compound_statement "{\n      bVar20 = param_2 < (char *)0x4;\n      bVar22 = param_2 == (char *)0x4;\n      if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }\n      goto LAB_0002f490;\n    }" ({ "{") (expression_statement "bVar20 = param_2 < (char *)0x4;" (assignment_expression "bVar20 = param_2 < (char *)0x4" (identifier "bVar20") (= "=") (binary_expression "param_2 < (char *)0x4" (identifier "param_2") (< "<") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (expression_statement "bVar22 = param_2 == (char *)0x4;" (assignment_expression "bVar22 = param_2 == (char *)0x4" (identifier "bVar22") (= "=") (binary_expression "param_2 == (char *)0x4" (identifier "param_2") (== "==") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")))) (; ";")) (if_statement "if (bVar22) {\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\n        bVar20 = (byte)param_1[0xc] < 2;\n        bVar22 = param_1[0xc] == 2;\n        if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }\n      }" ({ "{") (expression_statement "bVar20 = (byte)param_1[0xc] < 2;" (assignment_expression "bVar20 = (byte)param_1[0xc] < 2" (identifier "bVar20") (= "=") (binary_expression "(byte)param_1[0xc] < 2" (cast_expression "(byte)param_1[0xc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar22 = param_1[0xc] == 2;" (assignment_expression "bVar22 = param_1[0xc] == 2" (identifier "bVar22") (= "=") (binary_expression "param_1[0xc] == 2" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "2"))) (; ";")) (if_statement "if (bVar22) {\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }" (if "if") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (compound_statement "{\n          DAT_0007b2a0 = *(char **)(param_1 + 8);\n          bVar20 = false;\n          bVar22 = DAT_0007b2a0 == (char *)0x0;\n          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;\n        }" ({ "{") (expression_statement "DAT_0007b2a0 = *(char **)(param_1 + 8);" (assignment_expression "DAT_0007b2a0 = *(char **)(param_1 + 8)" (identifier "DAT_0007b2a0") (= "=") (pointer_expression "*(char **)(param_1 + 8)" (* "*") (cast_expression "(char **)(param_1 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" (identifier "bVar20") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = DAT_0007b2a0 == (char *)0x0;" (assignment_expression "bVar22 = DAT_0007b2a0 == (char *)0x0" (identifier "bVar22") (= "=") (binary_expression "DAT_0007b2a0 == (char *)0x0" (identifier "DAT_0007b2a0") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;" (if "if") (parenthesized_expression "(-1 < (int)DAT_0007b2a0)" (( "(") (binary_expression "-1 < (int)DAT_0007b2a0" (number_literal "-1") (< "<") (cast_expression "(int)DAT_0007b2a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0007b2a0"))) () ")")) (goto_statement "goto LAB_0002f49a;" (goto "goto") (statement_identifier "LAB_0002f49a") (; ";"))) (} "}"))) (} "}"))) (goto_statement "goto LAB_0002f490;" (goto "goto") (statement_identifier "LAB_0002f490") (; ";")) (} "}"))) (expression_statement "bVar20 = (byte)param_1[0xc] < 2;" (assignment_expression "bVar20 = (byte)param_1[0xc] < 2" (identifier "bVar20") (= "=") (binary_expression "(byte)param_1[0xc] < 2" (cast_expression "(byte)param_1[0xc]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar22 = param_1[0xc] == 2;" (assignment_expression "bVar22 = param_1[0xc] == 2" (identifier "bVar22") (= "=") (binary_expression "param_1[0xc] == 2" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "2"))) (; ";")) (if_statement "if (!bVar22) goto LAB_0002f490;" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (goto_statement "goto LAB_0002f490;" (goto "goto") (statement_identifier "LAB_0002f490") (; ";"))) (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" (identifier "bVar20") (= "=") (false "false")) (; ";")) (expression_statement "bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;" (assignment_expression "bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0" (identifier "bVar22") (= "=") (binary_expression "(*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0" (parenthesized_expression "(*(int *)(param_1 + 8) + 1U & 0xfffeffff)" (( "(") (binary_expression "*(int *)(param_1 + 8) + 1U & 0xfffeffff" (binary_expression "*(int *)(param_1 + 8) + 1U" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "1U")) (& "&") (number_literal "0xfffeffff")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar22) goto LAB_0002f490;" (if "if") (parenthesized_expression "(!bVar22)" (( "(") (unary_expression "!bVar22" (! "!") (identifier "bVar22")) () ")")) (goto_statement "goto LAB_0002f490;" (goto "goto") (statement_identifier "LAB_0002f490") (; ";"))) (expression_statement "local_20 = &DAT_0008482c;" (assignment_expression "local_20 = &DAT_0008482c" (identifier "local_20") (= "=") (pointer_expression "&DAT_0008482c" (& "&") (identifier "DAT_0008482c"))) (; ";")) (expression_statement "FUN_00027700();" (call_expression "FUN_00027700()" (identifier "FUN_00027700") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar20 = (undefined1 *)0xffffffef < &local_3c;" (assignment_expression "bVar20 = (undefined1 *)0xffffffef < &local_3c" (identifier "bVar20") (= "=") (binary_expression "(undefined1 *)0xffffffef < &local_3c" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")))) (; ";")) (expression_statement "bVar22 = &stack0x00000000 == (undefined1 *)0x2c;" (assignment_expression "bVar22 = &stack0x00000000 == (undefined1 *)0x2c" (identifier "bVar22") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x2c" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x2c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2c")))) (; ";")) (expression_statement "pbVar2 = *(byte **)*local_24;" (assignment_expression "pbVar2 = *(byte **)*local_24" (identifier "pbVar2") (= "=") (pointer_expression "*(byte **)*local_24" (* "*") (cast_expression "(byte **)*local_24" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*local_24" (* "*") (identifier "local_24"))))) (; ";")) (} "}")) (else_clause "else {\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }" (else "else") (compound_statement "{\nLAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;\n    local_20 = &DAT_0008482c;\n  }" ({ "{") (labeled_statement "LAB_0002f490:\n    DAT_0007b2a0 = (char *)0xffffffff;" (statement_identifier "LAB_0002f490") (: ":") (expression_statement "DAT_0007b2a0 = (char *)0xffffffff;" (assignment_expression "DAT_0007b2a0 = (char *)0xffffffff" (identifier "DAT_0007b2a0") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";"))) (expression_statement "local_20 = &DAT_0008482c;" (assignment_expression "local_20 = &DAT_0008482c" (identifier "local_20") (= "=") (pointer_expression "&DAT_0008482c" (& "&") (identifier "DAT_0008482c"))) (; ";")) (} "}")))) (labeled_statement "LAB_0002f49a:\n  iVar5 = 7;" (statement_identifier "LAB_0002f49a") (: ":") (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" (identifier "iVar5") (= "=") (number_literal "7")) (; ";"))) (expression_statement "pbVar11 = (byte *)".debug";" (assignment_expression "pbVar11 = (byte *)".debug"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".debug"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".debug"" (" """) (string_content ".debug") (" """)))) (; ";")) (do_statement "do {\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  } while (bVar22);" (do "do") (compound_statement "{\n    if (iVar5 == 0) break;\n    iVar5 = iVar5 + -1;\n    bVar20 = *pbVar2 < *pbVar11;\n    bVar22 = *pbVar2 == *pbVar11;\n    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;\n    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar20 = *pbVar2 < *pbVar11;" (assignment_expression "bVar20 = *pbVar2 < *pbVar11" (identifier "bVar20") (= "=") (binary_expression "*pbVar2 < *pbVar11" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar22 = *pbVar2 == *pbVar11;" (assignment_expression "bVar22 = *pbVar2 == *pbVar11" (identifier "bVar22") (= "=") (binary_expression "*pbVar2 == *pbVar11" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1" (identifier "pbVar2") (= "=") (binary_expression "pbVar2 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar2 + (uint)bVar23 * -2" (identifier "pbVar2") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar23 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar23 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar23 * -2" (cast_expression "(uint)bVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar23")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar22)" (( "(") (identifier "bVar22") () ")")) (; ";")) (if_statement "if ((!bVar20 && !bVar22) == bVar20) {\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }\n  else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }" (if "if") (parenthesized_expression "((!bVar20 && !bVar22) == bVar20)" (( "(") (binary_expression "(!bVar20 && !bVar22) == bVar20" (parenthesized_expression "(!bVar20 && !bVar22)" (( "(") (binary_expression "!bVar20 && !bVar22" (unary_expression "!bVar20" (! "!") (identifier "bVar20")) (&& "&&") (unary_expression "!bVar22" (! "!") (identifier "bVar22"))) () ")")) (== "==") (identifier "bVar20")) () ")")) (compound_statement "{\n    if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }\n  }" ({ "{") (if_statement "if (DAT_00083c2c == 0) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" (if "if") (parenthesized_expression "(DAT_00083c2c == 0)" (( "(") (binary_expression "DAT_00083c2c == 0" (identifier "DAT_00083c2c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 1;\n      DAT_00083c60 = 0;\n    }" ({ "{") (if_statement "if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))\n      goto LAB_0002f4d8;" (if "if") (parenthesized_expression "(((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))" (( "(") (binary_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11)" (parenthesized_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02'))" (( "(") (binary_expression "(param_2 != (char *)0x2) || (param_1[0xc] != '\x02')" (parenthesized_expression "(param_2 != (char *)0x2)" (( "(") (binary_expression "param_2 != (char *)0x2" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (|| "||") (parenthesized_expression "(param_1[0xc] != '\x02')" (( "(") (binary_expression "param_1[0xc] != '\x02'" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 8) != 0x11)" (( "(") (binary_expression "*(int *)(param_1 + 8) != 0x11" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0x11")) () ")"))) () ")")) (goto_statement "goto LAB_0002f4d8;" (goto "goto") (statement_identifier "LAB_0002f4d8") (; ";"))) (expression_statement "DAT_00083c2c = 1;" (assignment_expression "DAT_00083c2c = 1" (identifier "DAT_00083c2c") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" (identifier "DAT_00083c60") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" (else "else") (if_statement "if (DAT_00083c2c == 1) {\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }\n    else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" (if "if") (parenthesized_expression "(DAT_00083c2c == 1)" (( "(") (binary_expression "DAT_00083c2c == 1" (identifier "DAT_00083c2c") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;\n      DAT_00083c2c = 2;\n      DAT_00083c60 = 0;\n    }" ({ "{") (if_statement "if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))\n      goto LAB_0002f4d8;" (if "if") (parenthesized_expression "(((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))" (( "(") (binary_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12)" (parenthesized_expression "((param_2 != (char *)0x2) || (param_1[0xc] != '\x02'))" (( "(") (binary_expression "(param_2 != (char *)0x2) || (param_1[0xc] != '\x02')" (parenthesized_expression "(param_2 != (char *)0x2)" (( "(") (binary_expression "param_2 != (char *)0x2" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (|| "||") (parenthesized_expression "(param_1[0xc] != '\x02')" (( "(") (binary_expression "param_1[0xc] != '\x02'" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 8) != 0x12)" (( "(") (binary_expression "*(int *)(param_1 + 8) != 0x12" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0x12")) () ")"))) () ")")) (goto_statement "goto LAB_0002f4d8;" (goto "goto") (statement_identifier "LAB_0002f4d8") (; ";"))) (expression_statement "DAT_00083c2c = 2;" (assignment_expression "DAT_00083c2c = 2" (identifier "DAT_00083c2c") (= "=") (number_literal "2")) (; ";")) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" (identifier "DAT_00083c60") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" (else "else") (if_statement "if (DAT_00083c2c == 2) {\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }\n    else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" (if "if") (parenthesized_expression "(DAT_00083c2c == 2)" (( "(") (binary_expression "DAT_00083c2c == 2" (identifier "DAT_00083c2c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if (param_2 != (char *)0x4) goto LAB_0002f4d8;\n      DAT_00083c2c = 3;\n      DAT_00083c60 = 0;\n    }" ({ "{") (if_statement "if (param_2 != (char *)0x4) goto LAB_0002f4d8;" (if "if") (parenthesized_expression "(param_2 != (char *)0x4)" (( "(") (binary_expression "param_2 != (char *)0x4" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (goto_statement "goto LAB_0002f4d8;" (goto "goto") (statement_identifier "LAB_0002f4d8") (; ";"))) (expression_statement "DAT_00083c2c = 3;" (assignment_expression "DAT_00083c2c = 3" (identifier "DAT_00083c2c") (= "=") (number_literal "3")) (; ";")) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" (identifier "DAT_00083c60") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" (else "else") (compound_statement "{\n      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;\n      DAT_00083c2c = 4;\n      DAT_00083c60 = 1;\n    }" ({ "{") (if_statement "if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;" (if "if") (parenthesized_expression "(((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38))))" (( "(") (binary_expression "((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||\n         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))" (parenthesized_expression "((DAT_00083c2c != 3) || (param_2 != (char *)0x2))" (( "(") (binary_expression "(DAT_00083c2c != 3) || (param_2 != (char *)0x2)" (parenthesized_expression "(DAT_00083c2c != 3)" (( "(") (binary_expression "DAT_00083c2c != 3" (identifier "DAT_00083c2c") (!= "!=") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(param_2 != (char *)0x2)" (( "(") (binary_expression "param_2 != (char *)0x2" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))" (( "(") (parenthesized_expression "(param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38))" (( "(") (binary_expression "param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)" (binary_expression "param_1[0xc] != '\x02'" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 8) != 0x38)" (( "(") (binary_expression "*(int *)(param_1 + 8) != 0x38" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0x38")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0002f4d8;" (goto "goto") (statement_identifier "LAB_0002f4d8") (; ";"))) (expression_statement "DAT_00083c2c = 4;" (assignment_expression "DAT_00083c2c = 4" (identifier "DAT_00083c2c") (= "=") (number_literal "4")) (; ";")) (expression_statement "DAT_00083c60 = 1;" (assignment_expression "DAT_00083c60 = 1" (identifier "DAT_00083c60") (= "=") (number_literal "1")) (; ";")) (} "}")))))))) (} "}")) (else_clause "else {\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }" (else "else") (compound_statement "{\nLAB_0002f4d8:\n    DAT_00083c2c = 0;\n    DAT_00083c60 = 0;\n  }" ({ "{") (labeled_statement "LAB_0002f4d8:\n    DAT_00083c2c = 0;" (statement_identifier "LAB_0002f4d8") (: ":") (expression_statement "DAT_00083c2c = 0;" (assignment_expression "DAT_00083c2c = 0" (identifier "DAT_00083c2c") (= "=") (number_literal "0")) (; ";"))) (expression_statement "DAT_00083c60 = 0;" (assignment_expression "DAT_00083c60 = 0" (identifier "DAT_00083c60") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "piStack_38 = (int *)&param_2;" (assignment_expression "piStack_38 = (int *)&param_2" (identifier "piStack_38") (= "=") (cast_expression "(int *)&param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&param_2" (& "&") (identifier "param_2")))) (; ";")) (expression_statement "local_3c = param_1;" (assignment_expression "local_3c = param_1" (identifier "local_3c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar5 = FUN_0001f7b0();" (assignment_expression "iVar5 = FUN_0001f7b0()" (identifier "iVar5") (= "=") (call_expression "FUN_0001f7b0()" (identifier "FUN_0001f7b0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" (identifier "piVar8") (= "=") (identifier "local_24")) (; ";")) (if_statement "if (iVar5 != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "bVar23 = param_1[0xc];" (assignment_expression "bVar23 = param_1[0xc]" (identifier "bVar23") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if (bVar23 == 7) {\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }\n  else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }" (if "if") (parenthesized_expression "(bVar23 == 7)" (( "(") (binary_expression "bVar23 == 7" (identifier "bVar23") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n    if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }\n    puVar6 = (undefined4 *)*local_24;\n    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }\nLAB_0002f7a0:\n    local_24 = (int *)0x0;\nLAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) goto LAB_0002f730;\n    if (bVar23 == 2) goto LAB_0002f604;\n    if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\n    iStack_30 = *(int *)(param_1 + 8);\n    pcVar14 = (char *)(iStack_30 * 2);\n    if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(param_1 + 8) == 0) {\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_3c = *(char **)param_1;\n      iVar5 = FUN_000396c0();\n      if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }\n    }" ({ "{") (expression_statement "local_3c = *(char **)param_1;" (assignment_expression "local_3c = *(char **)param_1" (identifier "local_3c") (= "=") (pointer_expression "*(char **)param_1" (* "*") (cast_expression "(char **)param_1" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_1")))) (; ";")) (expression_statement "iVar5 = FUN_000396c0();" (assignment_expression "iVar5 = FUN_000396c0()" (identifier "iVar5") (= "=") (call_expression "FUN_000396c0()" (identifier "FUN_000396c0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*(char *)(iVar5 + 0xc) == '\x06') {\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 0xc) == '\x06')" (( "(") (binary_expression "*(char *)(iVar5 + 0xc) == '\x06'" (pointer_expression "*(char *)(iVar5 + 0xc)" (* "*") (cast_expression "(char *)(iVar5 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")")) (compound_statement "{\n        local_3c = *(char **)param_1;\n        iVar5 = FUN_000396c0();\n        if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }\n      }" ({ "{") (expression_statement "local_3c = *(char **)param_1;" (assignment_expression "local_3c = *(char **)param_1" (identifier "local_3c") (= "=") (pointer_expression "*(char **)param_1" (* "*") (cast_expression "(char **)param_1" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_1")))) (; ";")) (expression_statement "iVar5 = FUN_000396c0();" (assignment_expression "iVar5 = FUN_000396c0()" (identifier "iVar5") (= "=") (call_expression "FUN_000396c0()" (identifier "FUN_000396c0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (0 < *(int *)(iVar5 + 8)) {\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar5 + 8))" (( "(") (binary_expression "0 < *(int *)(iVar5 + 8)" (number_literal "0") (< "<") (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")) () ")"))))) () ")")) (compound_statement "{\n          local_3c = *(char **)param_1;\n          param_1 = (char *)FUN_000396c0();\n          piVar8 = local_24;\n          iVar5 = *(int *)(param_1 + 8);\n          if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }\n          goto LAB_0002fc48;\n        }" ({ "{") (expression_statement "local_3c = *(char **)param_1;" (assignment_expression "local_3c = *(char **)param_1" (identifier "local_3c") (= "=") (pointer_expression "*(char **)param_1" (* "*") (cast_expression "(char **)param_1" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_1")))) (; ";")) (expression_statement "param_1 = (char *)FUN_000396c0();" (assignment_expression "param_1 = (char *)FUN_000396c0()" (identifier "param_1") (= "=") (cast_expression "(char *)FUN_000396c0()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000396c0()" (identifier "FUN_000396c0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" (identifier "piVar8") (= "=") (identifier "local_24")) (; ";")) (expression_statement "iVar5 = *(int *)(param_1 + 8);" (assignment_expression "iVar5 = *(int *)(param_1 + 8)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (0 < iVar5) {\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }" (if "if") (parenthesized_expression "(0 < iVar5)" (( "(") (binary_expression "0 < iVar5" (number_literal "0") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n            uVar7 = 1;\n            puVar10 = &DAT_00084880;\n            do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);\n            local_24 = (int *)0xffffffff;\n            goto LAB_0002f544;\n          }" ({ "{") (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" (identifier "uVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar10 = &DAT_00084880;" (assignment_expression "puVar10 = &DAT_00084880" (identifier "puVar10") (= "=") (pointer_expression "&DAT_00084880" (& "&") (identifier "DAT_00084880"))) (; ";")) (do_statement "do {\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            } while (&DAT_00084880 + iVar5 != puVar13);" (do "do") (compound_statement "{\n              uVar15 = *puVar10;\n              puVar13 = puVar10 + 1;\n              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);\n              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;\n              puVar10 = puVar13;\n            }" ({ "{") (expression_statement "uVar15 = *puVar10;" (assignment_expression "uVar15 = *puVar10" (identifier "uVar15") (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "puVar13 = puVar10 + 1;" (assignment_expression "puVar13 = puVar10 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar10 = (ushort)(uVar7 + (ushort)~uVar15);" (assignment_expression "*puVar10 = (ushort)(uVar7 + (ushort)~uVar15)" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (call_expression "(ushort)(uVar7 + (ushort)~uVar15)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(uVar7 + (ushort)~uVar15)" (( "(") (binary_expression "uVar7 + (ushort)~uVar15" (identifier "uVar7") (+ "+") (cast_expression "(ushort)~uVar15" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (unary_expression "~uVar15" (~ "~") (identifier "uVar15")))) () ")")))) (; ";")) (expression_statement "uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;" (assignment_expression "uVar7 = uVar7 + (ushort)~uVar15 >> 0x10" (identifier "uVar7") (= "=") (binary_expression "uVar7 + (ushort)~uVar15 >> 0x10" (binary_expression "uVar7 + (ushort)~uVar15" (identifier "uVar7") (+ "+") (cast_expression "(ushort)~uVar15" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (unary_expression "~uVar15" (~ "~") (identifier "uVar15")))) (>> ">>") (number_literal "0x10"))) (; ";")) (expression_statement "puVar10 = puVar13;" (assignment_expression "puVar10 = puVar13" (identifier "puVar10") (= "=") (identifier "puVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(&DAT_00084880 + iVar5 != puVar13)" (( "(") (binary_expression "&DAT_00084880 + iVar5 != puVar13" (binary_expression "&DAT_00084880 + iVar5" (pointer_expression "&DAT_00084880" (& "&") (identifier "DAT_00084880")) (+ "+") (identifier "iVar5")) (!= "!=") (identifier "puVar13")) () ")")) (; ";")) (expression_statement "local_24 = (int *)0xffffffff;" (assignment_expression "local_24 = (int *)0xffffffff" (identifier "local_24") (= "=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_0002f544;" (goto "goto") (statement_identifier "LAB_0002f544") (; ";")) (} "}"))) (goto_statement "goto LAB_0002fc48;" (goto "goto") (statement_identifier "LAB_0002fc48") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "puVar6 = (undefined4 *)*local_24;" (assignment_expression "puVar6 = (undefined4 *)*local_24" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)*local_24" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_24" (* "*") (identifier "local_24")))) (; ";")) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }" (if "if") (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" (( "(") (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" (( "(") (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" (identifier "PTR__bfd_std_section_0007afb0") (+ "+") (number_literal "0x150")) () ")")))) () ")")) (compound_statement "{\nLAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a980();\n      goto LAB_0002f8df;\n    }" ({ "{") (labeled_statement "LAB_0002f8c1:\n      piStack_38 = (int *)0x5bce0;" (statement_identifier "LAB_0002f8c1") (: ":") (expression_statement "piStack_38 = (int *)0x5bce0;" (assignment_expression "piStack_38 = (int *)0x5bce0" (identifier "piStack_38") (= "=") (cast_expression "(int *)0x5bce0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5bce0"))) (; ";"))) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";")) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" (identifier "local_3c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" (identifier "local_3c") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "FUN_0002a980();" (call_expression "FUN_0002a980()" (identifier "FUN_0002a980") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0002f8df;" (goto "goto") (statement_identifier "LAB_0002f8df") (; ";")) (} "}"))) (labeled_statement "LAB_0002f7a0:\n    local_24 = (int *)0x0;" (statement_identifier "LAB_0002f7a0") (: ":") (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" (identifier "local_24") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (labeled_statement "LAB_0002f7a8:\n    if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }" (statement_identifier "LAB_0002f7a8") (: ":") (if_statement "if ((puVar6[5] & 0x103) == 1) {\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }" (if "if") (parenthesized_expression "((puVar6[5] & 0x103) == 1)" (( "(") (binary_expression "(puVar6[5] & 0x103) == 1" (parenthesized_expression "(puVar6[5] & 0x103)" (( "(") (binary_expression "puVar6[5] & 0x103" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "0x103")) () ")")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      piStack_38 = (int *)0x5bc90;\n      pcVar3 = (char *)*puVar6;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      piStack_38 = (int *)pcVar3;\n      FUN_0002a980();\n    }" ({ "{") (expression_statement "piStack_38 = (int *)0x5bc90;" (assignment_expression "piStack_38 = (int *)0x5bc90" (identifier "piStack_38") (= "=") (cast_expression "(int *)0x5bc90" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5bc90"))) (; ";")) (expression_statement "pcVar3 = (char *)*puVar6;" (assignment_expression "pcVar3 = (char *)*puVar6" (identifier "pcVar3") (= "=") (cast_expression "(char *)*puVar6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";")) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" (identifier "local_3c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" (identifier "local_3c") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piStack_38 = (int *)pcVar3;" (assignment_expression "piStack_38 = (int *)pcVar3" (identifier "piStack_38") (= "=") (cast_expression "(int *)pcVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar3"))) (; ";")) (expression_statement "FUN_0002a980();" (call_expression "FUN_0002a980()" (identifier "FUN_0002a980") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" (identifier "local_3c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pcVar3 = (char *)FUN_000238d0();" (assignment_expression "pcVar3 = (char *)FUN_000238d0()" (identifier "pcVar3") (= "=") (cast_expression "(char *)FUN_000238d0()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000238d0()" (identifier "FUN_000238d0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (param_3 != (char *)0x47) goto LAB_0002f730;" (if "if") (parenthesized_expression "(param_3 != (char *)0x47)" (( "(") (binary_expression "param_3 != (char *)0x47" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x47" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x47"))) () ")")) (goto_statement "goto LAB_0002f730;" (goto "goto") (statement_identifier "LAB_0002f730") (; ";"))) (if_statement "if (bVar23 == 2) goto LAB_0002f604;" (if "if") (parenthesized_expression "(bVar23 == 2)" (( "(") (binary_expression "bVar23 == 2" (identifier "bVar23") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_0002f604;" (goto "goto") (statement_identifier "LAB_0002f604") (; ";"))) (if_statement "if (bVar23 != 6) {\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" (if "if") (parenthesized_expression "(bVar23 != 6)" (( "(") (binary_expression "bVar23 != 6" (identifier "bVar23") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n      local_3c = (char *)0x47;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" ({ "{") (expression_statement "local_3c = (char *)0x47;" (assignment_expression "local_3c = (char *)0x47" (identifier "local_3c") (= "=") (cast_expression "(char *)0x47" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x47"))) (; ";")) (expression_statement "FUN_0002f390(param_1,param_2,*local_20,pcVar3);" (call_expression "FUN_0002f390(param_1,param_2,*local_20,pcVar3)" (identifier "FUN_0002f390") (argument_list "(param_1,param_2,*local_20,pcVar3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "*local_20" (* "*") (identifier "local_20")) (, ",") (identifier "pcVar3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iStack_30 = *(int *)(param_1 + 8);" (assignment_expression "iStack_30 = *(int *)(param_1 + 8)" (identifier "iStack_30") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar14 = (char *)(iStack_30 * 2);" (assignment_expression "pcVar14 = (char *)(iStack_30 * 2)" (identifier "pcVar14") (= "=") (cast_expression "(char *)(iStack_30 * 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_30 * 2)" (( "(") (binary_expression "iStack_30 * 2" (identifier "iStack_30") (* "*") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (param_2 < (char *)(iStack_30 * 2)) {\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }" (if "if") (parenthesized_expression "(param_2 < (char *)(iStack_30 * 2))" (( "(") (binary_expression "param_2 < (char *)(iStack_30 * 2)" (identifier "param_2") (< "<") (cast_expression "(char *)(iStack_30 * 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_30 * 2)" (( "(") (binary_expression "iStack_30 * 2" (identifier "iStack_30") (* "*") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n      uVar7 = (uint)param_2 >> 1;\n      pcVar18 = param_2;\n      if (uVar7 != 0) goto LAB_0002f669;\n      if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }\n      goto LAB_0002fb98;\n    }" ({ "{") (expression_statement "uVar7 = (uint)param_2 >> 1;" (assignment_expression "uVar7 = (uint)param_2 >> 1" (identifier "uVar7") (= "=") (binary_expression "(uint)param_2 >> 1" (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" (identifier "pcVar18") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (uVar7 != 0) goto LAB_0002f669;" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002f669;" (goto "goto") (statement_identifier "LAB_0002f669") (; ";"))) (if_statement "if (param_2 == (char *)0x1) {\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }\n      else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }" (if "if") (parenthesized_expression "(param_2 == (char *)0x1)" (( "(") (binary_expression "param_2 == (char *)0x1" (identifier "param_2") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        local_20 = (undefined4 *)&DAT_00084880;\n        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;\n        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;\n        iVar5 = 0;\n        do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);\n        pcVar18 = (char *)0x1;\n      }" ({ "{") (expression_statement "local_20 = (undefined4 *)&DAT_00084880;" (assignment_expression "local_20 = (undefined4 *)&DAT_00084880" (identifier "local_20") (= "=") (cast_expression "(undefined4 *)&DAT_00084880" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00084880" (& "&") (identifier "DAT_00084880")))) (; ";")) (expression_statement "uVar15 = (short)(DAT_00084880 << 8) >> 0xf;" (assignment_expression "uVar15 = (short)(DAT_00084880 << 8) >> 0xf" (identifier "uVar15") (= "=") (binary_expression "(short)(DAT_00084880 << 8) >> 0xf" (cast_expression "(short)(DAT_00084880 << 8)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "(DAT_00084880 << 8)" (( "(") (binary_expression "DAT_00084880 << 8" (identifier "DAT_00084880") (<< "<<") (number_literal "8")) () ")"))) (>> ">>") (number_literal "0xf"))) (; ";")) (if_statement "if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;" (if "if") (parenthesized_expression "(((DAT_00084880 ^ uVar15) & 0xff00) != 0)" (( "(") (binary_expression "((DAT_00084880 ^ uVar15) & 0xff00) != 0" (parenthesized_expression "((DAT_00084880 ^ uVar15) & 0xff00)" (( "(") (binary_expression "(DAT_00084880 ^ uVar15) & 0xff00" (parenthesized_expression "(DAT_00084880 ^ uVar15)" (( "(") (binary_expression "DAT_00084880 ^ uVar15" (identifier "DAT_00084880") (^ "^") (identifier "uVar15")) () ")")) (& "&") (number_literal "0xff00")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002fb1d;" (goto "goto") (statement_identifier "LAB_0002fb1d") (; ";"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        } while ((&DAT_00084880)[iVar5] == uVar15);" (do "do") (compound_statement "{\n          iVar5 = iVar5 + 1;\n          if (iStack_30 <= iVar5) goto LAB_0002fb38;\n        }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iStack_30 <= iVar5) goto LAB_0002fb38;" (if "if") (parenthesized_expression "(iStack_30 <= iVar5)" (( "(") (binary_expression "iStack_30 <= iVar5" (identifier "iStack_30") (<= "<=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_0002fb38;" (goto "goto") (statement_identifier "LAB_0002fb38") (; ";"))) (} "}")) (while "while") (parenthesized_expression "((&DAT_00084880)[iVar5] == uVar15)" (( "(") (binary_expression "(&DAT_00084880)[iVar5] == uVar15" (subscript_expression "(&DAT_00084880)[iVar5]" (parenthesized_expression "(&DAT_00084880)" (( "(") (pointer_expression "&DAT_00084880" (& "&") (identifier "DAT_00084880")) () ")")) ([ "[") (identifier "iVar5") (] "]")) (== "==") (identifier "uVar15")) () ")")) (; ";")) (expression_statement "pcVar18 = (char *)0x1;" (assignment_expression "pcVar18 = (char *)0x1" (identifier "pcVar18") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }" (else "else") (compound_statement "{\nLAB_0002fb1d:\n        pcVar14 = param_2;\n        if (iStack_30 < 1) goto LAB_0002fb25;\n      }" ({ "{") (labeled_statement "LAB_0002fb1d:\n        pcVar14 = param_2;" (statement_identifier "LAB_0002fb1d") (: ":") (expression_statement "pcVar14 = param_2;" (assignment_expression "pcVar14 = param_2" (identifier "pcVar14") (= "=") (identifier "param_2")) (; ";"))) (if_statement "if (iStack_30 < 1) goto LAB_0002fb25;" (if "if") (parenthesized_expression "(iStack_30 < 1)" (( "(") (binary_expression "iStack_30 < 1" (identifier "iStack_30") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0002fb25;" (goto "goto") (statement_identifier "LAB_0002fb25") (; ";"))) (} "}")))) (goto_statement "goto LAB_0002fb98;" (goto "goto") (statement_identifier "LAB_0002fb98") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }" (else "else") (compound_statement "{\n    if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }\n    local_3c = param_2;\n    pcVar3 = (char *)FUN_000238d0();\n    if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }\nLAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);\n    if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }\n    if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }\n    if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }\n    local_20 = (undefined4 *)&DAT_00084880;\n    _DAT_00084880 = piVar8;\n    param_1[0xc] = '\x06';\n    *(int *)(param_1 + 8) = iStack_30;\n    pcVar18 = param_2;\n    if (pcVar14 <= param_2) goto LAB_0002f698;\n    uVar7 = 2;\n    pcVar18 = (char *)0x5;\nLAB_0002f669:\n    iVar5 = uVar7 - 1;\n    psVar1 = (short *)(&DAT_00084880 + iVar5);\n    local_20 = (undefined4 *)CONCAT22(8,*psVar1);\n    do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);\nLAB_0002fb98:\n    local_3c = (char *)0x5;\n    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);\n    piStack_38 = (int *)pcVar18;\n    FUN_0002a8a0();\n    iStack_30 = extraout_ECX;\n    pcVar14 = param_2;\n  }" ({ "{") (if_statement "if (bVar23 < 2) {\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }\n    else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" (if "if") (parenthesized_expression "(bVar23 < 2)" (( "(") (binary_expression "bVar23 < 2" (identifier "bVar23") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      piStack_38 = (int *)0x5bc48;\n      piStack_34 = (int *)0x5;\n      local_3c = (char *)0x0;\n      local_3c = (char *)dcgettext();\n      FUN_0002a8a0();\nLAB_0002f5bf:\n      param_1[8] = '\0';\n      param_1[9] = '\0';\n      param_1[10] = '\0';\n      param_1[0xb] = '\0';\n      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }\n    }" ({ "{") (expression_statement "piStack_38 = (int *)0x5bc48;" (assignment_expression "piStack_38 = (int *)0x5bc48" (identifier "piStack_38") (= "=") (cast_expression "(int *)0x5bc48" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5bc48"))) (; ";")) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";")) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" (identifier "local_3c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" (identifier "local_3c") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" (identifier "FUN_0002a8a0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0002f5bf:\n      param_1[8] = '\0';" (statement_identifier "LAB_0002f5bf") (: ":") (expression_statement "param_1[8] = '\0';" (assignment_expression "param_1[8] = '\0'" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (expression_statement "param_1[9] = '\0';" (assignment_expression "param_1[9] = '\0'" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "param_1[10] = '\0';" (assignment_expression "param_1[10] = '\0'" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "param_1[0xb] = '\0';" (assignment_expression "param_1[0xb] = '\0'" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }" (if "if") (parenthesized_expression "((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150)" (( "(") (binary_expression "(undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150" (cast_expression "(undefined *)*local_24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_24" (* "*") (identifier "local_24"))) (== "==") (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" (identifier "PTR__bfd_std_section_0007afb0") (+ "+") (number_literal "0x150"))) () ")")) (compound_statement "{\nLAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;\n        return;\n      }" ({ "{") (labeled_statement "LAB_0002f8df:\n        DAT_000848ec = DAT_000848ec + (int)param_2;" (statement_identifier "LAB_0002f8df") (: ":") (expression_statement "DAT_000848ec = DAT_000848ec + (int)param_2;" (assignment_expression "DAT_000848ec = DAT_000848ec + (int)param_2" (identifier "DAT_000848ec") (= "=") (binary_expression "DAT_000848ec + (int)param_2" (identifier "DAT_000848ec") (+ "+") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" (else "else") (compound_statement "{\n      if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }\n      if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }\n      if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }\n    }" ({ "{") (if_statement "if (bVar23 == 6) {\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }" (if "if") (parenthesized_expression "(bVar23 == 6)" (( "(") (binary_expression "bVar23 == 6" (identifier "bVar23") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n        local_24 = (int *)0x0;\n        if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }\nLAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_24 = piVar8;\n        local_3c = (char *)dcgettext();\n        FUN_0002a980();\n        goto LAB_0002f5bf;\n      }" ({ "{") (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" (identifier "local_24") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (0 < *(int *)(param_1 + 8)) {\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(param_1 + 8))" (( "(") (binary_expression "0 < *(int *)(param_1 + 8)" (number_literal "0") (< "<") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\nLAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;\n          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;\n          bVar23 = 6;\n          goto LAB_0002f7a8;\n        }" ({ "{") (labeled_statement "LAB_0002f544:\n          puVar6 = (undefined4 *)*piVar8;" (statement_identifier "LAB_0002f544") (: ":") (expression_statement "puVar6 = (undefined4 *)*piVar8;" (assignment_expression "puVar6 = (undefined4 *)*piVar8" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)*piVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";"))) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;" (if "if") (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" (( "(") (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" (( "(") (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" (identifier "PTR__bfd_std_section_0007afb0") (+ "+") (number_literal "0x150")) () ")")))) () ")")) (goto_statement "goto LAB_0002f8c1;" (goto "goto") (statement_identifier "LAB_0002f8c1") (; ";"))) (expression_statement "bVar23 = 6;" (assignment_expression "bVar23 = 6" (identifier "bVar23") (= "=") (number_literal "6")) (; ";")) (goto_statement "goto LAB_0002f7a8;" (goto "goto") (statement_identifier "LAB_0002f7a8") (; ";")) (} "}"))) (labeled_statement "LAB_0002fc48:\n        piStack_38 = (int *)0x59ac4;" (statement_identifier "LAB_0002fc48") (: ":") (expression_statement "piStack_38 = (int *)0x59ac4;" (assignment_expression "piStack_38 = (int *)0x59ac4" (identifier "piStack_38") (= "=") (cast_expression "(int *)0x59ac4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x59ac4"))) (; ";"))) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";")) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" (identifier "local_3c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_24 = piVar8;" (assignment_expression "local_24 = piVar8" (identifier "local_24") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" (identifier "local_3c") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "FUN_0002a980();" (call_expression "FUN_0002a980()" (identifier "FUN_0002a980") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0002f5bf;" (goto "goto") (statement_identifier "LAB_0002f5bf") (; ";")) (} "}"))) (if_statement "if (bVar23 == 5) {\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }\n      else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }" (if "if") (parenthesized_expression "(bVar23 == 5)" (( "(") (binary_expression "bVar23 == 5" (identifier "bVar23") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n        piStack_38 = (int *)0x5bc6c;\n        piStack_34 = (int *)0x5;\n        local_3c = (char *)0x0;\n        local_3c = (char *)dcgettext();\n        FUN_0002a8a0();\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }\n      }" ({ "{") (expression_statement "piStack_38 = (int *)0x5bc6c;" (assignment_expression "piStack_38 = (int *)0x5bc6c" (identifier "piStack_38") (= "=") (cast_expression "(int *)0x5bc6c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5bc6c"))) (; ";")) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";")) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" (identifier "local_3c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" (identifier "local_3c") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" (identifier "FUN_0002a8a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar6 = (undefined4 *)*local_24;" (assignment_expression "puVar6 = (undefined4 *)*local_24" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)*local_24" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_24" (* "*") (identifier "local_24")))) (; ";")) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }" (if "if") (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" (( "(") (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" (( "(") (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" (identifier "PTR__bfd_std_section_0007afb0") (+ "+") (number_literal "0x150")) () ")")))) () ")")) (compound_statement "{\nLAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;\n          goto LAB_0002f8c1;\n        }" ({ "{") (labeled_statement "LAB_0002f8b6:\n          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;" (statement_identifier "LAB_0002f8b6") (: ":") (if_statement "if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 8) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) == 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002f8df;" (goto "goto") (statement_identifier "LAB_0002f8df") (; ";")))) (goto_statement "goto LAB_0002f8c1;" (goto "goto") (statement_identifier "LAB_0002f8c1") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }" (else "else") (compound_statement "{\n        puVar6 = (undefined4 *)*local_24;\n        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }\n        if (bVar23 != 2) goto LAB_0002f7a0;\n      }" ({ "{") (expression_statement "puVar6 = (undefined4 *)*local_24;" (assignment_expression "puVar6 = (undefined4 *)*local_24" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)*local_24" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_24" (* "*") (identifier "local_24")))) (; ";")) (if_statement "if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }" (if "if") (parenthesized_expression "(puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150))" (( "(") (binary_expression "puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__bfd_std_section_0007afb0 + 0x150)" (( "(") (binary_expression "PTR__bfd_std_section_0007afb0 + 0x150" (identifier "PTR__bfd_std_section_0007afb0") (+ "+") (number_literal "0x150")) () ")")))) () ")")) (compound_statement "{\n          if (bVar23 != 2) goto LAB_0002f8c1;\n          goto LAB_0002f8b6;\n        }" ({ "{") (if_statement "if (bVar23 != 2) goto LAB_0002f8c1;" (if "if") (parenthesized_expression "(bVar23 != 2)" (( "(") (binary_expression "bVar23 != 2" (identifier "bVar23") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_0002f8c1;" (goto "goto") (statement_identifier "LAB_0002f8c1") (; ";"))) (goto_statement "goto LAB_0002f8b6;" (goto "goto") (statement_identifier "LAB_0002f8b6") (; ";")) (} "}"))) (if_statement "if (bVar23 != 2) goto LAB_0002f7a0;" (if "if") (parenthesized_expression "(bVar23 != 2)" (( "(") (binary_expression "bVar23 != 2" (identifier "bVar23") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_0002f7a0;" (goto "goto") (statement_identifier "LAB_0002f7a0") (; ";"))) (} "}")))) (if_statement "if (*(int *)(param_1 + 8) != 0) {\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_24 = (int *)0x0;\n        bVar23 = 2;\n        goto LAB_0002f7a8;\n      }" ({ "{") (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" (identifier "local_24") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar23 = 2;" (assignment_expression "bVar23 = 2" (identifier "bVar23") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_0002f7a8;" (goto "goto") (statement_identifier "LAB_0002f7a8") (; ";")) (} "}"))) (} "}")))) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" (identifier "local_3c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pcVar3 = (char *)FUN_000238d0();" (assignment_expression "pcVar3 = (char *)FUN_000238d0()" (identifier "pcVar3") (= "=") (cast_expression "(char *)FUN_000238d0()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000238d0()" (identifier "FUN_000238d0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (param_3 != (char *)0x47) {\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" (if "if") (parenthesized_expression "(param_3 != (char *)0x47)" (( "(") (binary_expression "param_3 != (char *)0x47" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x47" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x47"))) () ")")) (compound_statement "{\nLAB_0002f730:\n      local_3c = param_3;\n      FUN_0002f390(param_1,param_2,*local_20,pcVar3);\n      return;\n    }" ({ "{") (labeled_statement "LAB_0002f730:\n      local_3c = param_3;" (statement_identifier "LAB_0002f730") (: ":") (expression_statement "local_3c = param_3;" (assignment_expression "local_3c = param_3" (identifier "local_3c") (= "=") (identifier "param_3")) (; ";"))) (expression_statement "FUN_0002f390(param_1,param_2,*local_20,pcVar3);" (call_expression "FUN_0002f390(param_1,param_2,*local_20,pcVar3)" (identifier "FUN_0002f390") (argument_list "(param_1,param_2,*local_20,pcVar3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "*local_20" (* "*") (identifier "local_20")) (, ",") (identifier "pcVar3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0002f604:\n    piVar8 = *(int **)(param_1 + 8);" (statement_identifier "LAB_0002f604") (: ":") (expression_statement "piVar8 = *(int **)(param_1 + 8);" (assignment_expression "piVar8 = *(int **)(param_1 + 8)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 8)" (* "*") (cast_expression "(int **)(param_1 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (if_statement "if (param_2 < (char *)0x5) {\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }" (if "if") (parenthesized_expression "(param_2 < (char *)0x5)" (( "(") (binary_expression "param_2 < (char *)0x5" (identifier "param_2") (< "<") (cast_expression "(char *)0x5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) () ")")) (compound_statement "{\n      piVar9 = piVar8;\n      if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }\n      local_3c = pcVar3;\n      piStack_38 = piVar9;\n      piStack_34 = (int *)param_2;\n      FUN_0003ed90();\n      return;\n    }" ({ "{") (expression_statement "piVar9 = piVar8;" (assignment_expression "piVar9 = piVar8" (identifier "piVar9") (= "=") (identifier "piVar8")) (; ";")) (if_statement "if (param_2 != (char *)0x4) {\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }" (if "if") (parenthesized_expression "(param_2 != (char *)0x4)" (( "(") (binary_expression "param_2 != (char *)0x4" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n        local_20 = (undefined4 *)((int)param_2 * 8);\n        uVar7 = -1 << ((byte)local_20 & 0x1f);\n        piVar9 = (int *)(~uVar7 & (uint)piVar8);\n        local_24 = piVar9;\n        if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }\n      }" ({ "{") (expression_statement "local_20 = (undefined4 *)((int)param_2 * 8);" (assignment_expression "local_20 = (undefined4 *)((int)param_2 * 8)" (identifier "local_20") (= "=") (cast_expression "(undefined4 *)((int)param_2 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 * 8)" (( "(") (binary_expression "(int)param_2 * 8" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (* "*") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar7 = -1 << ((byte)local_20 & 0x1f);" (assignment_expression "uVar7 = -1 << ((byte)local_20 & 0x1f)" (identifier "uVar7") (= "=") (binary_expression "-1 << ((byte)local_20 & 0x1f)" (number_literal "-1") (<< "<<") (parenthesized_expression "((byte)local_20 & 0x1f)" (( "(") (binary_expression "(byte)local_20 & 0x1f" (cast_expression "(byte)local_20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_20")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "piVar9 = (int *)(~uVar7 & (uint)piVar8);" (assignment_expression "piVar9 = (int *)(~uVar7 & (uint)piVar8)" (identifier "piVar9") (= "=") (cast_expression "(int *)(~uVar7 & (uint)piVar8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(~uVar7 & (uint)piVar8)" (( "(") (binary_expression "~uVar7 & (uint)piVar8" (unary_expression "~uVar7" (~ "~") (identifier "uVar7")) (& "&") (cast_expression "(uint)piVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar8"))) () ")")))) (; ";")) (expression_statement "local_24 = piVar9;" (assignment_expression "local_24 = piVar9" (identifier "local_24") (= "=") (identifier "piVar9")) (; ";")) (if_statement "if ((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }" (if "if") (parenthesized_expression "((((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0))))" (( "(") (binary_expression "(((uint)piVar8 & uVar7) != 0) &&\n           ((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))" (parenthesized_expression "(((uint)piVar8 & uVar7) != 0)" (( "(") (binary_expression "((uint)piVar8 & uVar7) != 0" (parenthesized_expression "((uint)piVar8 & uVar7)" (( "(") (binary_expression "(uint)piVar8 & uVar7" (cast_expression "(uint)piVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar8")) (& "&") (identifier "uVar7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))" (( "(") (parenthesized_expression "(((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0))" (( "(") (binary_expression "((uint)piVar8 & uVar7) != uVar7 ||\n            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)" (binary_expression "((uint)piVar8 & uVar7) != uVar7" (parenthesized_expression "((uint)piVar8 & uVar7)" (( "(") (binary_expression "(uint)piVar8 & uVar7" (cast_expression "(uint)piVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar8")) (& "&") (identifier "uVar7")) () ")")) (!= "!=") (identifier "uVar7")) (|| "||") (parenthesized_expression "((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)" (( "(") (binary_expression "(1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0" (parenthesized_expression "(1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8)" (( "(") (binary_expression "1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8" (binary_expression "1 << ((byte)local_20 - 1 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)local_20 - 1 & 0x1f)" (( "(") (binary_expression "(byte)local_20 - 1 & 0x1f" (binary_expression "(byte)local_20 - 1" (cast_expression "(byte)local_20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_20")) (- "-") (number_literal "1")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (cast_expression "(uint)piVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar8"))) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          piStack_38 = (int *)0x5bcc0;\n          piStack_34 = (int *)0x5;\n          local_3c = (char *)0x0;\n          local_3c = (char *)dcgettext();\n          piVar9 = local_24;\n          piStack_34 = local_24;\n          piStack_38 = piVar8;\n          FUN_0002a8a0();\n        }" ({ "{") (expression_statement "piStack_38 = (int *)0x5bcc0;" (assignment_expression "piStack_38 = (int *)0x5bcc0" (identifier "piStack_38") (= "=") (cast_expression "(int *)0x5bcc0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5bcc0"))) (; ";")) (expression_statement "piStack_34 = (int *)0x5;" (assignment_expression "piStack_34 = (int *)0x5" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";")) (expression_statement "local_3c = (char *)0x0;" (assignment_expression "local_3c = (char *)0x0" (identifier "local_3c") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_3c = (char *)dcgettext();" (assignment_expression "local_3c = (char *)dcgettext()" (identifier "local_3c") (= "=") (cast_expression "(char *)dcgettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar9 = local_24;" (assignment_expression "piVar9 = local_24" (identifier "piVar9") (= "=") (identifier "local_24")) (; ";")) (expression_statement "piStack_34 = local_24;" (assignment_expression "piStack_34 = local_24" (identifier "piStack_34") (= "=") (identifier "local_24")) (; ";")) (expression_statement "piStack_38 = piVar8;" (assignment_expression "piStack_38 = piVar8" (identifier "piStack_38") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" (identifier "FUN_0002a8a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" (identifier "local_3c") (= "=") (identifier "pcVar3")) (; ";")) (expression_statement "piStack_38 = piVar9;" (assignment_expression "piStack_38 = piVar9" (identifier "piStack_38") (= "=") (identifier "piVar9")) (; ";")) (expression_statement "piStack_34 = (int *)param_2;" (assignment_expression "piStack_34 = (int *)param_2" (identifier "piStack_34") (= "=") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (; ";")) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" (identifier "FUN_0003ed90") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if ((param_1[0xd] & 1U) == 0) {\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }\n    else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }" (if "if") (parenthesized_expression "((param_1[0xd] & 1U) == 0)" (( "(") (binary_expression "(param_1[0xd] & 1U) == 0" (parenthesized_expression "(param_1[0xd] & 1U)" (( "(") (binary_expression "param_1[0xd] & 1U" (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]")) (& "&") (number_literal "1U")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = 0xffff;\n      local_24 = (int *)0xffffffff;\n    }" ({ "{") (expression_statement "uVar4 = 0xffff;" (assignment_expression "uVar4 = 0xffff" (identifier "uVar4") (= "=") (number_literal "0xffff")) (; ";")) (expression_statement "local_24 = (int *)0xffffffff;" (assignment_expression "local_24 = (int *)0xffffffff" (identifier "local_24") (= "=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }" (else "else") (compound_statement "{\n      uVar4 = 0;\n      local_24 = (int *)0x0;\n    }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = (int *)0x0;" (assignment_expression "local_24 = (int *)0x0" (identifier "local_24") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (if_statement "if ((int)piVar8 < 0) {\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }\n    else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }" (if "if") (parenthesized_expression "((int)piVar8 < 0)" (( "(") (binary_expression "(int)piVar8 < 0" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar14 = (char *)0x4;\n      iStack_30 = 2;\n    }" ({ "{") (expression_statement "pcVar14 = (char *)0x4;" (assignment_expression "pcVar14 = (char *)0x4" (identifier "pcVar14") (= "=") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) (; ";")) (expression_statement "iStack_30 = 2;" (assignment_expression "iStack_30 = 2" (identifier "iStack_30") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }" (else "else") (compound_statement "{\n      pcVar14 = (char *)0x6;\n      iStack_30 = 3;\n      DAT_00084884 = uVar4;\n    }" ({ "{") (expression_statement "pcVar14 = (char *)0x6;" (assignment_expression "pcVar14 = (char *)0x6" (identifier "pcVar14") (= "=") (cast_expression "(char *)0x6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6"))) (; ";")) (expression_statement "iStack_30 = 3;" (assignment_expression "iStack_30 = 3" (identifier "iStack_30") (= "=") (number_literal "3")) (; ";")) (expression_statement "DAT_00084884 = uVar4;" (assignment_expression "DAT_00084884 = uVar4" (identifier "DAT_00084884") (= "=") (identifier "uVar4")) (; ";")) (} "}")))) (expression_statement "local_20 = (undefined4 *)&DAT_00084880;" (assignment_expression "local_20 = (undefined4 *)&DAT_00084880" (identifier "local_20") (= "=") (cast_expression "(undefined4 *)&DAT_00084880" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00084880" (& "&") (identifier "DAT_00084880")))) (; ";")) (expression_statement "_DAT_00084880 = piVar8;" (assignment_expression "_DAT_00084880 = piVar8" (identifier "_DAT_00084880") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "param_1[0xc] = '\x06';" (assignment_expression "param_1[0xc] = '\x06'" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) (; ";")) (expression_statement "*(int *)(param_1 + 8) = iStack_30;" (assignment_expression "*(int *)(param_1 + 8) = iStack_30" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iStack_30")) (; ";")) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" (identifier "pcVar18") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (pcVar14 <= param_2) goto LAB_0002f698;" (if "if") (parenthesized_expression "(pcVar14 <= param_2)" (( "(") (binary_expression "pcVar14 <= param_2" (identifier "pcVar14") (<= "<=") (identifier "param_2")) () ")")) (goto_statement "goto LAB_0002f698;" (goto "goto") (statement_identifier "LAB_0002f698") (; ";"))) (expression_statement "uVar7 = 2;" (assignment_expression "uVar7 = 2" (identifier "uVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "pcVar18 = (char *)0x5;" (assignment_expression "pcVar18 = (char *)0x5" (identifier "pcVar18") (= "=") (cast_expression "(char *)0x5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";")) (labeled_statement "LAB_0002f669:\n    iVar5 = uVar7 - 1;" (statement_identifier "LAB_0002f669") (: ":") (expression_statement "iVar5 = uVar7 - 1;" (assignment_expression "iVar5 = uVar7 - 1" (identifier "iVar5") (= "=") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1"))) (; ";"))) (expression_statement "psVar1 = (short *)(&DAT_00084880 + iVar5);" (assignment_expression "psVar1 = (short *)(&DAT_00084880 + iVar5)" (identifier "psVar1") (= "=") (cast_expression "(short *)(&DAT_00084880 + iVar5)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00084880 + iVar5)" (( "(") (binary_expression "&DAT_00084880 + iVar5" (pointer_expression "&DAT_00084880" (& "&") (identifier "DAT_00084880")) (+ "+") (identifier "iVar5")) () ")")))) (; ";")) (expression_statement "local_20 = (undefined4 *)CONCAT22(8,*psVar1);" (assignment_expression "local_20 = (undefined4 *)CONCAT22(8,*psVar1)" (identifier "local_20") (= "=") (cast_expression "(undefined4 *)CONCAT22(8,*psVar1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT22(8,*psVar1)" (identifier "CONCAT22") (argument_list "(8,*psVar1)" (( "(") (number_literal "8") (, ",") (pointer_expression "*psVar1" (* "*") (identifier "psVar1")) () ")"))))) (; ";")) (do_statement "do {\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);" (do "do") (compound_statement "{\n      iVar5 = iVar5 + 1;\n      pcVar14 = pcVar18;\n      if (iStack_30 <= iVar5) goto LAB_0002f698;\n    }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar14 = pcVar18;" (assignment_expression "pcVar14 = pcVar18" (identifier "pcVar14") (= "=") (identifier "pcVar18")) (; ";")) (if_statement "if (iStack_30 <= iVar5) goto LAB_0002f698;" (if "if") (parenthesized_expression "(iStack_30 <= iVar5)" (( "(") (binary_expression "iStack_30 <= iVar5" (identifier "iStack_30") (<= "<=") (identifier "iVar5")) () ")")) (goto_statement "goto LAB_0002f698;" (goto "goto") (statement_identifier "LAB_0002f698") (; ";"))) (} "}")) (while "while") (parenthesized_expression "((&DAT_00084880)[iVar5] == *psVar1 >> 0xf)" (( "(") (binary_expression "(&DAT_00084880)[iVar5] == *psVar1 >> 0xf" (subscript_expression "(&DAT_00084880)[iVar5]" (parenthesized_expression "(&DAT_00084880)" (( "(") (pointer_expression "&DAT_00084880" (& "&") (identifier "DAT_00084880")) () ")")) ([ "[") (identifier "iVar5") (] "]")) (== "==") (binary_expression "*psVar1 >> 0xf" (pointer_expression "*psVar1" (* "*") (identifier "psVar1")) (>> ">>") (number_literal "0xf"))) () ")")) (; ";")) (labeled_statement "LAB_0002fb98:\n    local_3c = (char *)0x5;" (statement_identifier "LAB_0002fb98") (: ":") (expression_statement "local_3c = (char *)0x5;" (assignment_expression "local_3c = (char *)0x5" (identifier "local_3c") (= "=") (cast_expression "(char *)0x5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";"))) (expression_statement "local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18);" (assignment_expression "local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" (identifier "local_3c") (= "=") (cast_expression "(char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" (identifier "dcngettext") (argument_list "(0,"bignum truncated to %d byte","bignum truncated to %d bytes",\n                                  pcVar18)" (( "(") (number_literal "0") (, ",") (string_literal ""bignum truncated to %d byte"" (" """) (string_content "bignum truncated to %d byte") (" """)) (, ",") (string_literal ""bignum truncated to %d bytes"" (" """) (string_content "bignum truncated to %d bytes") (" """)) (, ",") (identifier "pcVar18") () ")"))))) (; ";")) (expression_statement "piStack_38 = (int *)pcVar18;" (assignment_expression "piStack_38 = (int *)pcVar18" (identifier "piStack_38") (= "=") (cast_expression "(int *)pcVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar18"))) (; ";")) (expression_statement "FUN_0002a8a0();" (call_expression "FUN_0002a8a0()" (identifier "FUN_0002a8a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_30 = extraout_ECX;" (assignment_expression "iStack_30 = extraout_ECX" (identifier "iStack_30") (= "=") (identifier "extraout_ECX")) (; ";")) (expression_statement "pcVar14 = param_2;" (assignment_expression "pcVar14 = param_2" (identifier "pcVar14") (= "=") (identifier "param_2")) (; ";")) (} "}")))) (labeled_statement "LAB_0002fb25:\n  pcVar18 = param_2;" (statement_identifier "LAB_0002fb25") (: ":") (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" (identifier "pcVar18") (= "=") (identifier "param_2")) (; ";"))) (if_statement "if (param_2 == (char *)0x1) {\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }" (if "if") (parenthesized_expression "(param_2 == (char *)0x1)" (( "(") (binary_expression "param_2 == (char *)0x1" (identifier "param_2") (== "==") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\nLAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;\n    piStack_34 = (int *)0x1;\n    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);\n    local_3c = pcVar3;\n    FUN_0003ed90();\n    return;\n  }" ({ "{") (labeled_statement "LAB_0002fb38:\n    local_20 = (undefined4 *)&DAT_00084880;" (statement_identifier "LAB_0002fb38") (: ":") (expression_statement "local_20 = (undefined4 *)&DAT_00084880;" (assignment_expression "local_20 = (undefined4 *)&DAT_00084880" (identifier "local_20") (= "=") (cast_expression "(undefined4 *)&DAT_00084880" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00084880" (& "&") (identifier "DAT_00084880")))) (; ";"))) (expression_statement "piStack_34 = (int *)0x1;" (assignment_expression "piStack_34 = (int *)0x1" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);" (assignment_expression "piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff)" (identifier "piStack_38") (= "=") (cast_expression "(int *)((uint)_DAT_00084880 & 0xffff)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)_DAT_00084880 & 0xffff)" (( "(") (binary_expression "(uint)_DAT_00084880 & 0xffff" (cast_expression "(uint)_DAT_00084880" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "_DAT_00084880")) (& "&") (number_literal "0xffff")) () ")")))) (; ";")) (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" (identifier "local_3c") (= "=") (identifier "pcVar3")) (; ";")) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" (identifier "FUN_0003ed90") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0002f698:\n  piVar8 = local_24;" (statement_identifier "LAB_0002f698") (: ":") (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" (identifier "piVar8") (= "=") (identifier "local_24")) (; ";"))) (if_statement "if (((uint)pcVar18 & 1) == 0) {\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(((uint)pcVar18 & 1) == 0)" (( "(") (binary_expression "((uint)pcVar18 & 1) == 0" (parenthesized_expression "((uint)pcVar18 & 1)" (( "(") (binary_expression "(uint)pcVar18 & 1" (cast_expression "(uint)pcVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar18")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_3c = pcVar3;\n    if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }\n    return;\n  }" ({ "{") (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" (identifier "local_3c") (= "=") (identifier "pcVar3")) (; ";")) (if_statement "if (DAT_00083c1c == 0) {\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }\n    else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }" (if "if") (parenthesized_expression "(DAT_00083c1c == 0)" (( "(") (binary_expression "DAT_00083c1c == 0" (identifier "DAT_00083c1c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar17 = pcVar3;\n      if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }\n      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }\n    }" ({ "{") (expression_statement "pcVar17 = pcVar3;" (assignment_expression "pcVar17 = pcVar3" (identifier "pcVar17") (= "=") (identifier "pcVar3")) (; ";")) (if_statement "if ((char *)0x1 < pcVar14) {\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }" (if "if") (parenthesized_expression "((char *)0x1 < pcVar14)" (( "(") (binary_expression "(char *)0x1 < pcVar14" (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (< "<") (identifier "pcVar14")) () ")")) (compound_statement "{\n        puVar10 = &DAT_00084880;\n        do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);\n      }" ({ "{") (expression_statement "puVar10 = &DAT_00084880;" (assignment_expression "puVar10 = &DAT_00084880" (identifier "puVar10") (= "=") (pointer_expression "&DAT_00084880" (& "&") (identifier "DAT_00084880"))) (; ";")) (do_statement "do {\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);" (do "do") (compound_statement "{\n          piStack_38 = (int *)(uint)*puVar10;\n          puVar10 = puVar10 + 1;\n          piStack_34 = (int *)0x2;\n          pcVar12 = local_3c + 2;\n          FUN_0003ed90();\n          param_2 = param_2 + -2;\n          local_3c = pcVar12;\n          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n          piVar8 = local_24;\n          pcVar18 = param_2;\n        }" ({ "{") (expression_statement "piStack_38 = (int *)(uint)*puVar10;" (assignment_expression "piStack_38 = (int *)(uint)*puVar10" (identifier "piStack_38") (= "=") (binary_expression "(int *)(uint)*puVar10" (cast_expression "(int *)(uint)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "pcVar12 = local_3c + 2;" (assignment_expression "pcVar12 = local_3c + 2" (identifier "pcVar12") (= "=") (binary_expression "local_3c + 2" (identifier "local_3c") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" (identifier "FUN_0003ed90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_2 = param_2 + -2;" (assignment_expression "param_2 = param_2 + -2" (identifier "param_2") (= "=") (binary_expression "param_2 + -2" (identifier "param_2") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "local_3c = pcVar12;" (assignment_expression "local_3c = pcVar12" (identifier "local_3c") (= "=") (identifier "pcVar12")) (; ";")) (expression_statement "pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;" (assignment_expression "pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (identifier "pcVar17") (= "=") (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe)" (identifier "pcVar3") (+ "+") (parenthesized_expression "((uint)(pcVar14 + -2) & 0xfffffffe)" (( "(") (binary_expression "(uint)(pcVar14 + -2) & 0xfffffffe" (call_expression "(uint)(pcVar14 + -2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar14 + -2)" (( "(") (binary_expression "pcVar14 + -2" (identifier "pcVar14") (+ "+") (number_literal "-2")) () ")"))) (& "&") (number_literal "0xfffffffe")) () ")"))) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" (identifier "piVar8") (= "=") (identifier "local_24")) (; ";")) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" (identifier "pcVar18") (= "=") (identifier "param_2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2)" (( "(") (binary_expression "pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (identifier "pcVar12") (!= "!=") (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (binary_expression "pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe)" (identifier "pcVar3") (+ "+") (parenthesized_expression "((uint)(pcVar14 + -2) & 0xfffffffe)" (( "(") (binary_expression "(uint)(pcVar14 + -2) & 0xfffffffe" (call_expression "(uint)(pcVar14 + -2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar14 + -2)" (( "(") (binary_expression "pcVar14 + -2" (identifier "pcVar14") (+ "+") (number_literal "-2")) () ")"))) (& "&") (number_literal "0xfffffffe")) () ")"))) (+ "+") (number_literal "2"))) () ")")) (; ";")) (} "}"))) (while_statement "while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }" (while "while") (parenthesized_expression "(local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18)" (( "(") (comma_expression "local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18" (assignment_expression "local_3c = pcVar17" (identifier "local_3c") (= "=") (identifier "pcVar17")) (, ",") (comma_expression "piVar9 = local_24, (char *)0x1 < pcVar18" (assignment_expression "piVar9 = local_24" (identifier "piVar9") (= "=") (identifier "local_24")) (, ",") (binary_expression "(char *)0x1 < pcVar18" (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (< "<") (identifier "pcVar18")))) () ")")) (compound_statement "{\n        piStack_34 = (int *)0x2;\n        piStack_38 = local_24;\n        pcVar17 = local_3c + 2;\n        local_24 = piVar8;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        piVar8 = local_24;\n        local_24 = piVar9;\n        pcVar18 = param_2;\n      }" ({ "{") (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "piStack_38 = local_24;" (assignment_expression "piStack_38 = local_24" (identifier "piStack_38") (= "=") (identifier "local_24")) (; ";")) (expression_statement "pcVar17 = local_3c + 2;" (assignment_expression "pcVar17 = local_3c + 2" (identifier "pcVar17") (= "=") (binary_expression "local_3c + 2" (identifier "local_3c") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_24 = piVar8;" (assignment_expression "local_24 = piVar8" (identifier "local_24") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" (identifier "FUN_0003ed90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_2 = param_2 + -2;" (assignment_expression "param_2 = param_2 + -2" (identifier "param_2") (= "=") (binary_expression "param_2 + -2" (identifier "param_2") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "piVar8 = local_24;" (assignment_expression "piVar8 = local_24" (identifier "piVar8") (= "=") (identifier "local_24")) (; ";")) (expression_statement "local_24 = piVar9;" (assignment_expression "local_24 = piVar9" (identifier "local_24") (= "=") (identifier "piVar9")) (; ";")) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" (identifier "pcVar18") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }" (else "else") (compound_statement "{\n      while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }\n      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));\n      if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }\n    }" ({ "{") (while_statement "while (pcVar14 < pcVar18) {\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }" (while "while") (parenthesized_expression "(pcVar14 < pcVar18)" (( "(") (binary_expression "pcVar14 < pcVar18" (identifier "pcVar14") (< "<") (identifier "pcVar18")) () ")")) (compound_statement "{\n        piStack_34 = (int *)0x2;\n        piStack_38 = piVar8;\n        pcVar3 = local_3c + 2;\n        FUN_0003ed90();\n        param_2 = param_2 + -2;\n        local_3c = pcVar3;\n        pcVar18 = param_2;\n      }" ({ "{") (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "piStack_38 = piVar8;" (assignment_expression "piStack_38 = piVar8" (identifier "piStack_38") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "pcVar3 = local_3c + 2;" (assignment_expression "pcVar3 = local_3c + 2" (identifier "pcVar3") (= "=") (binary_expression "local_3c + 2" (identifier "local_3c") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" (identifier "FUN_0003ed90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_2 = param_2 + -2;" (assignment_expression "param_2 = param_2 + -2" (identifier "param_2") (= "=") (binary_expression "param_2 + -2" (identifier "param_2") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "local_3c = pcVar3;" (assignment_expression "local_3c = pcVar3" (identifier "local_3c") (= "=") (identifier "pcVar3")) (; ";")) (expression_statement "pcVar18 = param_2;" (assignment_expression "pcVar18 = param_2" (identifier "pcVar18") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (expression_statement "puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));" (assignment_expression "puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe))" (identifier "puVar10") (= "=") (cast_expression "(ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe))" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe))" (( "(") (binary_expression "PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe)" (identifier "PTR_DAT_0007afa0") (+ "+") (parenthesized_expression "((uint)pcVar14 & 0xfffffffe)" (( "(") (binary_expression "(uint)pcVar14 & 0xfffffffe" (cast_expression "(uint)pcVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar14")) (& "&") (number_literal "0xfffffffe")) () ")"))) () ")")))) (; ";")) (if_statement "if ((char *)0x1 < pcVar14) {\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }" (if "if") (parenthesized_expression "((char *)0x1 < pcVar14)" (( "(") (binary_expression "(char *)0x1 < pcVar14" (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (< "<") (identifier "pcVar14")) () ")")) (compound_statement "{\n        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;\n        do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);\n      }" ({ "{") (expression_statement "pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;" (assignment_expression "pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (identifier "pcVar3") (= "=") (binary_expression "local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2" (binary_expression "local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe)" (identifier "local_3c") (+ "+") (parenthesized_expression "((uint)(pcVar14 + -2) & 0xfffffffe)" (( "(") (binary_expression "(uint)(pcVar14 + -2) & 0xfffffffe" (call_expression "(uint)(pcVar14 + -2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar14 + -2)" (( "(") (binary_expression "pcVar14 + -2" (identifier "pcVar14") (+ "+") (number_literal "-2")) () ")"))) (& "&") (number_literal "0xfffffffe")) () ")"))) (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        } while (pcVar14 != pcVar3);" (do "do") (compound_statement "{\n          puVar10 = puVar10 + -1;\n          piStack_38 = (int *)(uint)*puVar10;\n          piStack_34 = (int *)0x2;\n          pcVar14 = local_3c + 2;\n          FUN_0003ed90();\n          local_3c = pcVar14;\n        }" ({ "{") (expression_statement "puVar10 = puVar10 + -1;" (assignment_expression "puVar10 = puVar10 + -1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + -1" (identifier "puVar10") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "piStack_38 = (int *)(uint)*puVar10;" (assignment_expression "piStack_38 = (int *)(uint)*puVar10" (identifier "piStack_38") (= "=") (binary_expression "(int *)(uint)*puVar10" (cast_expression "(int *)(uint)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "piStack_34 = (int *)0x2;" (assignment_expression "piStack_34 = (int *)0x2" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "pcVar14 = local_3c + 2;" (assignment_expression "pcVar14 = local_3c + 2" (identifier "pcVar14") (= "=") (binary_expression "local_3c + 2" (identifier "local_3c") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "FUN_0003ed90();" (call_expression "FUN_0003ed90()" (identifier "FUN_0003ed90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_3c = pcVar14;" (assignment_expression "local_3c = pcVar14" (identifier "local_3c") (= "=") (identifier "pcVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar14 != pcVar3)" (( "(") (binary_expression "pcVar14 != pcVar3" (identifier "pcVar14") (!= "!=") (identifier "pcVar3")) () ")")) (; ";")) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piStack_34 = (int *)0x5cc0c;" (assignment_expression "piStack_34 = (int *)0x5cc0c" (identifier "piStack_34") (= "=") (cast_expression "(int *)0x5cc0c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5cc0c"))) (; ";")) (expression_statement "local_3c = "../../gas/read.c";" (assignment_expression "local_3c = "../../gas/read.c"" (identifier "local_3c") (= "=") (string_literal ""../../gas/read.c"" (" """) (string_content "../../gas/read.c") (" """))) (; ";")) (expression_statement "piStack_38 = (int *)0x1180;" (assignment_expression "piStack_38 = (int *)0x1180" (identifier "piStack_38") (= "=") (cast_expression "(int *)0x1180" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1180"))) (; ";")) (expression_statement "FUN_0002aaa0();" (call_expression "FUN_0002aaa0()" (identifier "FUN_0002aaa0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void function_1(type_1 *exp,type_2 var_8,type_3 var_23)

{
  short *psVar1;
  type_4 *var_10;
  char *var_36;
  type_1 *peVar4;
  char *var_39;
  type_5 uVar6;
  int var_5;
  type_6 var_18;
  type_2 var_16;
  type_6 *ppaVar10;
  type_6 *ppaVar11;
  int var_28;
  type_7 *var_15;
  type_4 *var_6;
  char *var_38;
  type_7 *var_17;
  char *var_37;
  type_7 var_27;
  type_4 *var_7;
  type_2 var_34;
  type_8 uVar21;
  bool var_11;
  type_8 uVar23;
  bool bVar24;
  type_4 var_13;
  type_8 var_2 [8];
  type_6 *local_24;
  type_9 local_20;
  type_9 uStack_14;
  
  var_13 = 0;
  uStack_14 = 0x2f3e9;
  if (var_1 != 0) {
    return;
  }
  uVar21 = var_2 < (type_8 *)0xc;
  uVar23 = &stack0x00000000 == (type_8 *)0x38;
  var_3(var_8);
  dot_value = var_4();
  var_5 = 6;
  local_20 = &frag_now;
  dot_frag = frag_now;
  local_24 = &now_seg;
  var_10 = (type_4 *)now_seg->name;
  var_6 = var_10;
  var_7 = (type_4 *)".line";
  do {
    if (var_5 == 0) break;
    var_5 = var_5 + -1;
    uVar21 = *var_6 < *var_7;
    uVar23 = *var_6 == *var_7;
    var_6 = var_6 + (type_2)var_13 * -2 + 1;
    var_7 = var_7 + (type_2)var_13 * -2 + 1;
  } while ((bool)uVar23);
  var_11 = false;
  bVar24 = (!(bool)uVar21 && !(bool)uVar23) == (bool)uVar21;
  if (bVar24) {
    if ((function_1::lexical_block_7::var_9 < 0) || (var_8 != 2)) {
      var_11 = var_8 < 4;
      bVar24 = var_8 == 4;
      if (bVar24) {
        var_11 = (type_4)exp->field_0xc < 2;
        bVar24 = exp->field_0xc == 2;
        if (bVar24) {
          emit_expr_with_reloc::lexical_block_7::var_9 = exp->X_add_number;
          var_11 = false;
          bVar24 = function_1::lexical_block_7::var_9 == 0;
          if (-1 < function_1::lexical_block_7::var_9) goto LAB_0002f49a;
        }
      }
      goto LAB_0002f490;
    }
    var_11 = (type_4)exp->field_0xc < 2;
    bVar24 = exp->field_0xc == 2;
    if (!bVar24) goto LAB_0002f490;
    var_11 = false;
    bVar24 = (exp->X_add_number + 1U & 0xfffeffff) == 0;
    if (!bVar24) goto LAB_0002f490;
    local_20 = &frag_now;
    listing_source_line(function_1::lexical_block_7::var_9);
    var_11 = (type_8 *)0xffffffef < &stack0xffffffc4;
    bVar24 = &stack0x00000000 == (type_8 *)0x2c;
    var_10 = (type_4 *)(*local_24)->name;
  }
  else {
LAB_0002f490:
    emit_expr_with_reloc::lexical_block_7::var_9 = -1;
    local_20 = &frag_now;
  }
LAB_0002f49a:
  var_5 = 7;
  var_6 = (type_4 *)".debug";
  do {
    if (var_5 == 0) break;
    var_5 = var_5 + -1;
    var_11 = *var_10 < *var_6;
    bVar24 = *var_10 == *var_6;
    var_10 = var_10 + (type_2)var_13 * -2 + 1;
    var_6 = var_6 + (type_2)var_13 * -2 + 1;
  } while (bVar24);
  if ((!var_11 && !bVar24) == var_11) {
    if (function_1::lexical_block_8::dwarf_file == 0) {
      if (((var_8 != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x11))
      goto LAB_0002f4d8;
      emit_expr_with_reloc::lexical_block_8::dwarf_file = 1;
      dwarf_file_string = 0;
    }
    else if (function_1::lexical_block_8::dwarf_file == 1) {
      if (((var_8 != 2) || (exp->field_0xc != '\x02')) || (exp->X_add_number != 0x12))
      goto LAB_0002f4d8;
      emit_expr_with_reloc::lexical_block_8::dwarf_file = 2;
      dwarf_file_string = 0;
    }
    else if (function_1::lexical_block_8::dwarf_file == 2) {
      if (var_8 != 4) goto LAB_0002f4d8;
      emit_expr_with_reloc::lexical_block_8::dwarf_file = 3;
      dwarf_file_string = 0;
    }
    else {
      if (((function_1::lexical_block_8::dwarf_file != 3) || (var_8 != 2)) ||
         ((exp->field_0xc != '\x02' || (exp->X_add_number != 0x38)))) goto LAB_0002f4d8;
      emit_expr_with_reloc::lexical_block_8::dwarf_file = 4;
      dwarf_file_string = 1;
    }
  }
  else {
LAB_0002f4d8:
    emit_expr_with_reloc::lexical_block_8::dwarf_file = 0;
    dwarf_file_string = 0;
  }
  var_5 = var_12(exp,&var_8);
  ppaVar10 = local_24;
  if (var_5 != 0) {
    return;
  }
  var_13 = exp->field_0xc;
  if (var_13 == 7) {
    if (((exp->X_add_number == 0) &&
        (peVar4 = var_14(exp->X_add_symbol), peVar4->field_0xc == '\x06')) &&
       (peVar4 = var_14(exp->X_add_symbol), 0 < peVar4->X_add_number)) {
      exp = var_14(exp->X_add_symbol);
      ppaVar10 = local_24;
      var_5 = exp->X_add_number;
      if (var_5 < 1) goto LAB_0002fc48;
      var_16 = 1;
      var_15 = &var_26;
      do {
        var_27 = *var_15;
        var_17 = var_15 + 1;
        *var_15 = (type_7)(var_16 + (type_7)~var_27);
        var_16 = var_16 + (type_7)~var_27 >> 0x10;
        var_15 = var_17;
      } while (&var_26 + var_5 != var_17);
      local_24 = (type_6 *)0xffffffff;
LAB_0002f544:
      var_18 = *ppaVar10;
      if (var_18 == (type_6)(var_19 + 0x150)) goto LAB_0002f8c1;
      var_13 = 6;
    }
    else {
      var_18 = *local_24;
      if (var_18 == (type_6)(var_19 + 0x150)) {
LAB_0002f8c1:
        var_36 = (char *)var_20();
        var_21(var_36);
        goto LAB_0002f8df;
      }
LAB_0002f7a0:
      local_24 = (type_6 *)0x0;
    }
LAB_0002f7a8:
    if ((var_18->flags & 0x103) == 1) {
      var_36 = (char *)var_20();
      var_21(var_36);
    }
    var_36 = var_22(var_8);
    if (var_23 != var_24) goto LAB_0002f730;
    if (var_13 == 2) goto LAB_0002f604;
    if (var_13 != 6) {
      var_25(exp,var_8,*local_20,var_36,var_24);
      return;
    }
    var_5 = exp->X_add_number;
    var_16 = var_5 * 2;
    if (var_8 < (type_2)(var_5 * 2)) {
      var_16 = var_8 >> 1;
      var_34 = var_8;
      if (var_16 != 0) goto LAB_0002f669;
      if (var_8 == 1) {
        local_20 = (type_10 **)&var_26;
        var_27 = (short)(var_26 << 8) >> 0xf;
        if (((var_26 ^ var_27) & 0xff00) != 0) goto LAB_0002fb1d;
        var_28 = 0;
        do {
          var_28 = var_28 + 1;
          if (var_5 <= var_28) goto LAB_0002fb38;
        } while ((&var_26)[var_28] == var_27);
        var_34 = 1;
      }
      else {
LAB_0002fb1d:
        var_16 = var_8;
        if (var_5 < 1) goto LAB_0002fb25;
      }
      goto LAB_0002fb98;
    }
  }
  else {
    if (var_13 < 2) {
      var_36 = (char *)var_20();
      var_29(var_36);
LAB_0002f5bf:
      exp->X_add_number = 0;
      if (*local_24 == (type_6)(var_19 + 0x150)) {
LAB_0002f8df:
        var_30 = var_30 + var_8;
        return;
      }
    }
    else {
      if (var_13 == 6) {
        local_24 = (type_6 *)0x0;
        if (0 < exp->X_add_number) goto LAB_0002f544;
LAB_0002fc48:
        local_24 = ppaVar10;
        var_36 = (char *)var_20();
        var_21(var_36);
        goto LAB_0002f5bf;
      }
      if (var_13 == 5) {
        var_36 = (char *)var_20();
        var_29(var_36);
        var_18 = *local_24;
        if (var_18 == (type_6)(var_19 + 0x150)) {
LAB_0002f8b6:
          if (exp->X_add_number == 0) goto LAB_0002f8df;
          goto LAB_0002f8c1;
        }
      }
      else {
        var_18 = *local_24;
        if (var_18 == (type_6)(var_19 + 0x150)) {
          if (var_13 != 2) goto LAB_0002f8c1;
          goto LAB_0002f8b6;
        }
        if (var_13 != 2) goto LAB_0002f7a0;
      }
      if (exp->X_add_number != 0) {
        local_24 = (type_6 *)0x0;
        var_13 = 2;
        goto LAB_0002f7a8;
      }
    }
    var_36 = var_22(var_8);
    if (var_23 != var_24) {
LAB_0002f730:
      var_25(exp,var_8,*local_20,var_36,var_23);
      return;
    }
LAB_0002f604:
    ppaVar10 = (type_6 *)exp->X_add_number;
    if (var_8 < 5) {
      ppaVar11 = ppaVar10;
      if (var_8 != 4) {
        local_20 = (type_10 **)(var_8 * 8);
        var_16 = -1 << ((type_4)local_20 & 0x1f);
        ppaVar11 = (type_6 *)(~var_16 & (type_2)ppaVar10);
        local_24 = ppaVar11;
        if ((((type_2)ppaVar10 & var_16) != 0) &&
           ((((type_2)ppaVar10 & var_16) != var_16 ||
            ((1 << ((type_4)local_20 - 1 & 0x1f) & (type_2)ppaVar10) == 0)))) {
          var_39 = (char *)var_20();
          ppaVar11 = local_24;
          var_29(var_39);
        }
      }
      var_31(var_36,(type_11)ppaVar11,var_8);
      return;
    }
    if ((exp->field_0xd & 1) == 0) {
      uVar6 = 0xffff;
      local_24 = (type_6 *)0xffffffff;
    }
    else {
      uVar6 = 0;
      local_24 = (type_6 *)0x0;
    }
    if ((int)ppaVar10 < 0) {
      var_16 = 4;
      var_5 = 2;
    }
    else {
      var_16 = 6;
      var_5 = 3;
      DAT_00084884 = uVar6;
    }
    local_20 = (type_10 **)&var_26;
    _generic_bignum = ppaVar10;
    exp->field_0xc = 6;
    exp->X_add_number = var_5;
    var_34 = var_8;
    if (var_16 <= var_8) goto LAB_0002f698;
    var_16 = 2;
    var_34 = 5;
LAB_0002f669:
    var_28 = var_16 - 1;
    psVar1 = (short *)(&var_26 + var_28);
    local_20 = (type_10 **)var_32(8,*psVar1);
    do {
      var_28 = var_28 + 1;
      var_16 = var_34;
      if (var_5 <= var_28) goto LAB_0002f698;
    } while ((&var_26)[var_28] == *psVar1 >> 0xf);
LAB_0002fb98:
    var_39 = (char *)var_33(0,"bignum truncated to %d byte","bignum truncated to %d bytes",
                                var_34);
    var_29(var_39);
    var_16 = var_8;
  }
LAB_0002fb25:
  var_34 = var_8;
  if (var_8 == 1) {
LAB_0002fb38:
    local_20 = (type_10 **)&var_26;
    var_31(var_36,(type_2)_generic_bignum & 0xffff,1);
    return;
  }
LAB_0002f698:
  ppaVar10 = local_24;
  if ((var_34 & 1) == 0) {
    if (var_35 == 0) {
      if (1 < var_16) {
        var_15 = &var_26;
        var_39 = var_36 + (var_16 - 2 & 0xfffffffe) + 2;
        var_37 = var_36;
        do {
          var_27 = *var_15;
          var_15 = var_15 + 1;
          var_38 = var_37 + 2;
          var_31(var_37,(type_2)var_27,2);
          var_8 = var_8 - 2;
          var_37 = var_38;
          var_36 = var_39;
          ppaVar10 = local_24;
          var_34 = var_8;
        } while (var_38 != var_39);
      }
      while (ppaVar11 = local_24, 1 < var_34) {
        local_24 = ppaVar10;
        var_31(var_36,(type_11)ppaVar11,2);
        var_8 = var_8 - 2;
        var_36 = var_36 + 2;
        ppaVar10 = local_24;
        local_24 = ppaVar11;
        var_34 = var_8;
      }
    }
    else {
      while (var_16 < var_34) {
        var_31(var_36,(type_11)ppaVar10,2);
        var_8 = var_8 - 2;
        var_36 = var_36 + 2;
        var_34 = var_8;
      }
      var_15 = (type_7 *)(var_40 + (var_16 & 0xfffffffe));
      if (1 < var_16) {
        var_39 = var_36;
        do {
          var_15 = var_15 + -1;
          var_37 = var_39 + 2;
          var_31(var_39,(type_2)*var_15,2);
          var_39 = var_37;
        } while (var_37 != var_36 + (var_16 - 2 & 0xfffffffe) + 2);
      }
    }
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_41("../../gas/read.c",0x1180,"emit_expr_with_reloc");
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void MASKED(char *param_1,char *param_2,char *param_3)

{
  short *psVar1;
  byte *pbVar2;
  char *pcVar3;
  undefined2 uVar4;
  int iVar5;
  int extraout_ECX;
  undefined4 *puVar6;
  uint uVar7;
  int *piVar8;
  int *piVar9;
  ushort *puVar10;
  byte *pbVar11;
  char *pcVar12;
  ushort *puVar13;
  char *pcVar14;
  ushort uVar15;
  byte *pbVar16;
  char *pcVar17;
  char *pcVar18;
  undefined1 uVar19;
  bool bVar20;
  undefined1 uVar21;
  bool bVar22;
  byte bVar23;
  char *local_3c;
  int *piStack_38;
  int *piStack_34;
  int iStack_30;
  undefined1 auStack_2c [8];
  int *local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar23 = 0;
  uStack_14 = 0x2f3e9;
  if (DAT_000846e8 != 0) {
    return;
  }
  uVar19 = auStack_2c < (undefined1 *)0xc;
  uVar21 = &stack0x00000000 == (undefined1 *)0x38;
  local_3c = param_2;
  FUN_00023780();
  DAT_00084a50 = FUN_00023b00();
  iVar5 = 6;
  local_20 = &DAT_0008482c;
  DAT_00084a5c = DAT_0008482c;
  local_24 = (int *)&DAT_000846fc;
  pbVar2 = (byte *)*DAT_000846fc;
  pbVar11 = pbVar2;
  pbVar16 = (byte *)".line";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    uVar19 = *pbVar11 < *pbVar16;
    uVar21 = *pbVar11 == *pbVar16;
    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;
    pbVar16 = pbVar16 + (uint)bVar23 * -2 + 1;
  } while ((bool)uVar21);
  bVar20 = false;
  bVar22 = (!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19;
  if (bVar22) {
    local_3c = DAT_0007b2a0;
    if (((int)DAT_0007b2a0 < 0) || (param_2 != (char *)0x2)) {
      bVar20 = param_2 < (char *)0x4;
      bVar22 = param_2 == (char *)0x4;
      if (bVar22) {
        bVar20 = (byte)param_1[0xc] < 2;
        bVar22 = param_1[0xc] == 2;
        if (bVar22) {
          DAT_0007b2a0 = *(char **)(param_1 + 8);
          bVar20 = false;
          bVar22 = DAT_0007b2a0 == (char *)0x0;
          if (-1 < (int)DAT_0007b2a0) goto LAB_0002f49a;
        }
      }
      goto LAB_0002f490;
    }
    bVar20 = (byte)param_1[0xc] < 2;
    bVar22 = param_1[0xc] == 2;
    if (!bVar22) goto LAB_0002f490;
    bVar20 = false;
    bVar22 = (*(int *)(param_1 + 8) + 1U & 0xfffeffff) == 0;
    if (!bVar22) goto LAB_0002f490;
    local_20 = &DAT_0008482c;
    FUN_00027700();
    bVar20 = (undefined1 *)0xffffffef < &local_3c;
    bVar22 = &stack0x00000000 == (undefined1 *)0x2c;
    pbVar2 = *(byte **)*local_24;
  }
  else {
LAB_0002f490:
    DAT_0007b2a0 = (char *)0xffffffff;
    local_20 = &DAT_0008482c;
  }
LAB_0002f49a:
  iVar5 = 7;
  pbVar11 = (byte *)".debug";
  do {
    if (iVar5 == 0) break;
    iVar5 = iVar5 + -1;
    bVar20 = *pbVar2 < *pbVar11;
    bVar22 = *pbVar2 == *pbVar11;
    pbVar2 = pbVar2 + (uint)bVar23 * -2 + 1;
    pbVar11 = pbVar11 + (uint)bVar23 * -2 + 1;
  } while (bVar22);
  if ((!bVar20 && !bVar22) == bVar20) {
    if (DAT_00083c2c == 0) {
      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x11))
      goto LAB_0002f4d8;
      DAT_00083c2c = 1;
      DAT_00083c60 = 0;
    }
    else if (DAT_00083c2c == 1) {
      if (((param_2 != (char *)0x2) || (param_1[0xc] != '\x02')) || (*(int *)(param_1 + 8) != 0x12))
      goto LAB_0002f4d8;
      DAT_00083c2c = 2;
      DAT_00083c60 = 0;
    }
    else if (DAT_00083c2c == 2) {
      if (param_2 != (char *)0x4) goto LAB_0002f4d8;
      DAT_00083c2c = 3;
      DAT_00083c60 = 0;
    }
    else {
      if (((DAT_00083c2c != 3) || (param_2 != (char *)0x2)) ||
         ((param_1[0xc] != '\x02' || (*(int *)(param_1 + 8) != 0x38)))) goto LAB_0002f4d8;
      DAT_00083c2c = 4;
      DAT_00083c60 = 1;
    }
  }
  else {
LAB_0002f4d8:
    DAT_00083c2c = 0;
    DAT_00083c60 = 0;
  }
  piStack_38 = (int *)&param_2;
  local_3c = param_1;
  iVar5 = FUN_0001f7b0();
  piVar8 = local_24;
  if (iVar5 != 0) {
    return;
  }
  bVar23 = param_1[0xc];
  if (bVar23 == 7) {
    if (*(int *)(param_1 + 8) == 0) {
      local_3c = *(char **)param_1;
      iVar5 = FUN_000396c0();
      if (*(char *)(iVar5 + 0xc) == '\x06') {
        local_3c = *(char **)param_1;
        iVar5 = FUN_000396c0();
        if (0 < *(int *)(iVar5 + 8)) {
          local_3c = *(char **)param_1;
          param_1 = (char *)FUN_000396c0();
          piVar8 = local_24;
          iVar5 = *(int *)(param_1 + 8);
          if (0 < iVar5) {
            uVar7 = 1;
            puVar10 = &DAT_00084880;
            do {
              uVar15 = *puVar10;
              puVar13 = puVar10 + 1;
              *puVar10 = (ushort)(uVar7 + (ushort)~uVar15);
              uVar7 = uVar7 + (ushort)~uVar15 >> 0x10;
              puVar10 = puVar13;
            } while (&DAT_00084880 + iVar5 != puVar13);
            local_24 = (int *)0xffffffff;
            goto LAB_0002f544;
          }
          goto LAB_0002fc48;
        }
      }
    }
    puVar6 = (undefined4 *)*local_24;
    if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {
LAB_0002f8c1:
      piStack_38 = (int *)0x5bce0;
      piStack_34 = (int *)0x5;
      local_3c = (char *)0x0;
      local_3c = (char *)dcgettext();
      FUN_0002a980();
      goto LAB_0002f8df;
    }
LAB_0002f7a0:
    local_24 = (int *)0x0;
LAB_0002f7a8:
    if ((puVar6[5] & 0x103) == 1) {
      piStack_38 = (int *)0x5bc90;
      pcVar3 = (char *)*puVar6;
      piStack_34 = (int *)0x5;
      local_3c = (char *)0x0;
      local_3c = (char *)dcgettext();
      piStack_38 = (int *)pcVar3;
      FUN_0002a980();
    }
    local_3c = param_2;
    pcVar3 = (char *)FUN_000238d0();
    if (param_3 != (char *)0x47) goto LAB_0002f730;
    if (bVar23 == 2) goto LAB_0002f604;
    if (bVar23 != 6) {
      local_3c = (char *)0x47;
      FUN_0002f390(param_1,param_2,*local_20,pcVar3);
      return;
    }
    iStack_30 = *(int *)(param_1 + 8);
    pcVar14 = (char *)(iStack_30 * 2);
    if (param_2 < (char *)(iStack_30 * 2)) {
      uVar7 = (uint)param_2 >> 1;
      pcVar18 = param_2;
      if (uVar7 != 0) goto LAB_0002f669;
      if (param_2 == (char *)0x1) {
        local_20 = (undefined4 *)&DAT_00084880;
        uVar15 = (short)(DAT_00084880 << 8) >> 0xf;
        if (((DAT_00084880 ^ uVar15) & 0xff00) != 0) goto LAB_0002fb1d;
        iVar5 = 0;
        do {
          iVar5 = iVar5 + 1;
          if (iStack_30 <= iVar5) goto LAB_0002fb38;
        } while ((&DAT_00084880)[iVar5] == uVar15);
        pcVar18 = (char *)0x1;
      }
      else {
LAB_0002fb1d:
        pcVar14 = param_2;
        if (iStack_30 < 1) goto LAB_0002fb25;
      }
      goto LAB_0002fb98;
    }
  }
  else {
    if (bVar23 < 2) {
      piStack_38 = (int *)0x5bc48;
      piStack_34 = (int *)0x5;
      local_3c = (char *)0x0;
      local_3c = (char *)dcgettext();
      FUN_0002a8a0();
LAB_0002f5bf:
      param_1[8] = '\0';
      param_1[9] = '\0';
      param_1[10] = '\0';
      param_1[0xb] = '\0';
      if ((undefined *)*local_24 == PTR__bfd_std_section_0007afb0 + 0x150) {
LAB_0002f8df:
        DAT_000848ec = DAT_000848ec + (int)param_2;
        return;
      }
    }
    else {
      if (bVar23 == 6) {
        local_24 = (int *)0x0;
        if (0 < *(int *)(param_1 + 8)) {
LAB_0002f544:
          puVar6 = (undefined4 *)*piVar8;
          if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) goto LAB_0002f8c1;
          bVar23 = 6;
          goto LAB_0002f7a8;
        }
LAB_0002fc48:
        piStack_38 = (int *)0x59ac4;
        piStack_34 = (int *)0x5;
        local_3c = (char *)0x0;
        local_24 = piVar8;
        local_3c = (char *)dcgettext();
        FUN_0002a980();
        goto LAB_0002f5bf;
      }
      if (bVar23 == 5) {
        piStack_38 = (int *)0x5bc6c;
        piStack_34 = (int *)0x5;
        local_3c = (char *)0x0;
        local_3c = (char *)dcgettext();
        FUN_0002a8a0();
        puVar6 = (undefined4 *)*local_24;
        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {
LAB_0002f8b6:
          if (*(int *)(param_1 + 8) == 0) goto LAB_0002f8df;
          goto LAB_0002f8c1;
        }
      }
      else {
        puVar6 = (undefined4 *)*local_24;
        if (puVar6 == (undefined4 *)(PTR__bfd_std_section_0007afb0 + 0x150)) {
          if (bVar23 != 2) goto LAB_0002f8c1;
          goto LAB_0002f8b6;
        }
        if (bVar23 != 2) goto LAB_0002f7a0;
      }
      if (*(int *)(param_1 + 8) != 0) {
        local_24 = (int *)0x0;
        bVar23 = 2;
        goto LAB_0002f7a8;
      }
    }
    local_3c = param_2;
    pcVar3 = (char *)FUN_000238d0();
    if (param_3 != (char *)0x47) {
LAB_0002f730:
      local_3c = param_3;
      FUN_0002f390(param_1,param_2,*local_20,pcVar3);
      return;
    }
LAB_0002f604:
    piVar8 = *(int **)(param_1 + 8);
    if (param_2 < (char *)0x5) {
      piVar9 = piVar8;
      if (param_2 != (char *)0x4) {
        local_20 = (undefined4 *)((int)param_2 * 8);
        uVar7 = -1 << ((byte)local_20 & 0x1f);
        piVar9 = (int *)(~uVar7 & (uint)piVar8);
        local_24 = piVar9;
        if ((((uint)piVar8 & uVar7) != 0) &&
           ((((uint)piVar8 & uVar7) != uVar7 ||
            ((1 << ((byte)local_20 - 1 & 0x1f) & (uint)piVar8) == 0)))) {
          piStack_38 = (int *)0x5bcc0;
          piStack_34 = (int *)0x5;
          local_3c = (char *)0x0;
          local_3c = (char *)dcgettext();
          piVar9 = local_24;
          piStack_34 = local_24;
          piStack_38 = piVar8;
          FUN_0002a8a0();
        }
      }
      local_3c = pcVar3;
      piStack_38 = piVar9;
      piStack_34 = (int *)param_2;
      FUN_0003ed90();
      return;
    }
    if ((param_1[0xd] & 1U) == 0) {
      uVar4 = 0xffff;
      local_24 = (int *)0xffffffff;
    }
    else {
      uVar4 = 0;
      local_24 = (int *)0x0;
    }
    if ((int)piVar8 < 0) {
      pcVar14 = (char *)0x4;
      iStack_30 = 2;
    }
    else {
      pcVar14 = (char *)0x6;
      iStack_30 = 3;
      DAT_00084884 = uVar4;
    }
    local_20 = (undefined4 *)&DAT_00084880;
    _DAT_00084880 = piVar8;
    param_1[0xc] = '\x06';
    *(int *)(param_1 + 8) = iStack_30;
    pcVar18 = param_2;
    if (pcVar14 <= param_2) goto LAB_0002f698;
    uVar7 = 2;
    pcVar18 = (char *)0x5;
LAB_0002f669:
    iVar5 = uVar7 - 1;
    psVar1 = (short *)(&DAT_00084880 + iVar5);
    local_20 = (undefined4 *)CONCAT22(8,*psVar1);
    do {
      iVar5 = iVar5 + 1;
      pcVar14 = pcVar18;
      if (iStack_30 <= iVar5) goto LAB_0002f698;
    } while ((&DAT_00084880)[iVar5] == *psVar1 >> 0xf);
LAB_0002fb98:
    local_3c = (char *)0x5;
    local_3c = (char *)dcngettext(0,"bignum truncated to %d byte","bignum truncated to %d bytes",
                                  pcVar18);
    piStack_38 = (int *)pcVar18;
    FUN_0002a8a0();
    iStack_30 = extraout_ECX;
    pcVar14 = param_2;
  }
LAB_0002fb25:
  pcVar18 = param_2;
  if (param_2 == (char *)0x1) {
LAB_0002fb38:
    local_20 = (undefined4 *)&DAT_00084880;
    piStack_34 = (int *)0x1;
    piStack_38 = (int *)((uint)_DAT_00084880 & 0xffff);
    local_3c = pcVar3;
    FUN_0003ed90();
    return;
  }
LAB_0002f698:
  piVar8 = local_24;
  if (((uint)pcVar18 & 1) == 0) {
    local_3c = pcVar3;
    if (DAT_00083c1c == 0) {
      pcVar17 = pcVar3;
      if ((char *)0x1 < pcVar14) {
        puVar10 = &DAT_00084880;
        do {
          piStack_38 = (int *)(uint)*puVar10;
          puVar10 = puVar10 + 1;
          piStack_34 = (int *)0x2;
          pcVar12 = local_3c + 2;
          FUN_0003ed90();
          param_2 = param_2 + -2;
          local_3c = pcVar12;
          pcVar17 = pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;
          piVar8 = local_24;
          pcVar18 = param_2;
        } while (pcVar12 != pcVar3 + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2);
      }
      while (local_3c = pcVar17, piVar9 = local_24, (char *)0x1 < pcVar18) {
        piStack_34 = (int *)0x2;
        piStack_38 = local_24;
        pcVar17 = local_3c + 2;
        local_24 = piVar8;
        FUN_0003ed90();
        param_2 = param_2 + -2;
        piVar8 = local_24;
        local_24 = piVar9;
        pcVar18 = param_2;
      }
    }
    else {
      while (pcVar14 < pcVar18) {
        piStack_34 = (int *)0x2;
        piStack_38 = piVar8;
        pcVar3 = local_3c + 2;
        FUN_0003ed90();
        param_2 = param_2 + -2;
        local_3c = pcVar3;
        pcVar18 = param_2;
      }
      puVar10 = (ushort *)(PTR_DAT_0007afa0 + ((uint)pcVar14 & 0xfffffffe));
      if ((char *)0x1 < pcVar14) {
        pcVar3 = local_3c + ((uint)(pcVar14 + -2) & 0xfffffffe) + 2;
        do {
          puVar10 = puVar10 + -1;
          piStack_38 = (int *)(uint)*puVar10;
          piStack_34 = (int *)0x2;
          pcVar14 = local_3c + 2;
          FUN_0003ed90();
          local_3c = pcVar14;
        } while (pcVar14 != pcVar3);
      }
    }
    return;
  }
  piStack_34 = (int *)0x5cc0c;
  local_3c = "../../gas/read.c";
  piStack_38 = (int *)0x1180;
                    /* WARNING: Subroutine does not return */
  FUN_0002aaa0();
}

