
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int __regparm3 i386_intel_simplify(expressionS *e)

{
  offsetT *poVar1;
  int *piVar2;
  ulonglong uVar3;
  undefined2 uVar4;
  ushort uVar5;
  offsetT oVar6;
  undefined *puVar7;
  byte bVar8;
  expressionS *peVar9;
  int iVar10;
  segT paVar11;
  symbolS *psVar12;
  char *pcVar13;
  uint uVar14;
  byte *pbVar15;
  int iVar16;
  expressionS *peVar17;
  byte *pbVar18;
  undefined1 uVar19;
  bool bVar20;
  undefined1 uVar21;
  byte bVar22;
  undefined1 auStack_4c [4];
  expressionS *local_48;
  symbolS *local_44;
  symbolS *local_40;
  expressionS exp;
  
  bVar22 = 0;
  peVar17 = (expressionS *)0x0;
  if (-1 < this_operand) {
    peVar17 = i.op[this_operand].disps;
  }
  if (intel_syntax == 0) {
    return 1;
  }
  local_44 = (symbolS *)intel_state.base;
  local_48 = (expressionS *)intel_state.index;
  bVar8 = e->field_0x10;
  switch((uint)bVar8) {
  default:
    psVar12 = e->X_add_symbol;
    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;
LAB_00049e84:
    if (1 < (byte)(bVar8 - 0x13)) {
      if (-1 < this_operand) {
LAB_0004a3ce:
        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;
      }
      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;
      goto LAB_0004a47d;
    }
    local_44 = (symbolS *)intel_state.base;
    local_48 = (expressionS *)intel_state.index;
    if (-1 < this_operand) {
      if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;
      goto LAB_0004a47d;
    }
    break;
  case 2:
    if (e->X_md != 0) {
      iVar10 = i386_intel_simplify_register(e);
      return iVar10;
    }
    psVar12 = e->X_add_symbol;
    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;
    if (-1 < this_operand) goto LAB_0004a3ce;
LAB_0004a47d:
    if (local_48 != (expressionS *)intel_state.index) goto LAB_0004a3f0;
    break;
  case 5:
    iVar10 = i386_intel_simplify_register(e);
    if (iVar10 != 2) {
      return iVar10;
    }
    uVar14 = (uint)e->X_add_number;
    if (-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14)) {
                    /* WARNING: Subroutine does not return */
      as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");
    }
    e->field_0x10 = 2;
    e->X_md = (short)uVar14 + 1;
    *(undefined4 *)&e->X_add_number = 0;
    *(undefined4 *)((int)&e->X_add_number + 4) = 0;
    return 2;
  case 10:
    if (this_operand < 0) {
      psVar12 = e->X_add_symbol;
      if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;
LAB_00049e58:
      peVar9 = symbol_get_value_expression(psVar12);
      iVar10 = i386_intel_simplify(peVar9);
      if (iVar10 == 2) {
        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));
        bVar8 = e->field_0x10;
      }
      else {
        if (iVar10 == 0) {
          return 0;
        }
        bVar8 = e->field_0x10;
      }
      goto LAB_00049e84;
    }
    if (intel_state.in_bracket == 0) {
      psVar12 = e->X_add_symbol;
      if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;
      goto LAB_00049e58;
    }
    if (intel_state.in_scale == 0) {
      intel_state.scale_factor._0_4_ = 1;
      intel_state.scale_factor._4_4_ = 0;
    }
    psVar12 = e->X_add_symbol;
    intel_state.in_scale = intel_state.in_scale + 1;
    peVar17 = symbol_get_value_expression(psVar12);
    iVar10 = i386_intel_simplify(peVar17);
    if (iVar10 == 2) {
      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));
      if (local_48 != (expressionS *)0x0) goto LAB_0004a795;
LAB_0004a136:
      psVar12 = e->X_op_symbol;
      bVar20 = true;
      peVar17 = (expressionS *)intel_state.index;
      if (intel_state.index != (reg_entry *)0x0) {
        peVar17 = symbol_get_value_expression(psVar12);
        psVar12 = e->X_op_symbol;
        bVar20 = peVar17 == (expressionS *)0x0;
      }
    }
    else {
      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;
      if (iVar10 == 0) {
        intel_state.in_scale = intel_state.in_scale - 1;
        return 0;
      }
LAB_0004a795:
      psVar12 = e->X_op_symbol;
      bVar20 = true;
      peVar17 = (expressionS *)0x0;
    }
    local_44 = psVar12;
    peVar9 = symbol_get_value_expression(psVar12);
    iVar10 = i386_intel_simplify(peVar9);
    if (iVar10 == 2) {
      S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));
      iVar16 = 1;
    }
    else {
      bVar20 = (bool)(bVar20 & iVar10 != 0);
      iVar16 = iVar10;
    }
    if (bVar20) {
      if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&
         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {
LAB_0004a69c:
        resolve_expression(peVar17);
        if ((peVar17->field_0x10 == '\x02') &&
           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {
          uVar14 = (uint)peVar17->X_add_number;
          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);
        }
        else {
          *(undefined4 *)&peVar17->X_add_number = 0;
          uVar14 = 0;
          iVar10 = 0;
          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;
        }
        iVar10 = iVar10 * (uint)intel_state.scale_factor;
        uVar3 = (ulonglong)(uint)intel_state.scale_factor;
        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);
        intel_state.scale_factor._4_4_ =
             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;
        intel_state.in_scale = intel_state.in_scale - 1;
      }
      else {
        intel_state.in_scale = intel_state.in_scale - 1;
      }
    }
    else {
      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;
      intel_state.in_scale = intel_state.in_scale - 1;
      if (iVar16 == 0) {
        return 0;
      }
    }
    iVar16 = this_operand;
    if (intel_state.in_scale == 0) {
      if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {
        i.log2_scale_factor = 1;
      }
      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {
        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {
          i.log2_scale_factor = 2;
        }
        else {
          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)
          goto LAB_0004a8b9;
          i.log2_scale_factor = 3;
        }
      }
      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {
        i.log2_scale_factor = 0;
      }
      else {
LAB_0004a8b9:
        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);
      }
    }
    goto LAB_00049f18;
  case 0x1d:
    psVar12 = e->X_add_symbol;
    if (psVar12 != (symbolS *)0x0) {
      peVar9 = symbol_get_value_expression(psVar12);
      iVar10 = i386_intel_simplify(peVar9);
      if (iVar10 == 2) {
        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));
      }
      else if (iVar10 == 0) {
        return 0;
      }
      if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;
    }
    if (intel_state.in_offset == 0) {
      intel_state.in_bracket = intel_state.in_bracket + 1;
    }
    psVar12 = e->X_op_symbol;
    peVar17 = symbol_get_value_expression(psVar12);
    iVar10 = i386_intel_simplify(peVar17);
    if (iVar10 == 2) {
      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));
      if (intel_state.in_offset == 0) {
        intel_state.in_bracket = intel_state.in_bracket - 1;
      }
    }
    else {
      if (intel_state.in_offset == 0) {
        intel_state.in_bracket = intel_state.in_bracket - 1;
      }
      if (iVar10 == 0) {
        return 0;
      }
    }
    if (e->X_add_symbol != (symbolS *)0x0) {
      e->field_0x10 = 0x13;
      return 1;
    }
    psVar12 = e->X_op_symbol;
    peVar17 = symbol_get_value_expression(psVar12);
    paVar11 = S_GET_SEGMENT(psVar12);
    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {
      uVar14 = (uint)e->X_add_number;
      iVar10 = *(int *)((int)&e->X_add_number + 4);
      e->X_add_symbol = peVar17->X_add_symbol;
      e->X_op_symbol = peVar17->X_op_symbol;
      *(int *)&e->X_add_number = (int)peVar17->X_add_number;
      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);
      uVar4 = *(undefined2 *)&peVar17->field_0x10;
      uVar5 = peVar17->X_md;
      poVar1 = &e->X_add_number;
      oVar6 = *poVar1;
      *(uint *)poVar1 = (int)*poVar1 + uVar14;
      *(undefined2 *)&e->field_0x10 = uVar4;
      e->X_md = uVar5;
      piVar2 = (int *)((int)&e->X_add_number + 4);
      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);
      iVar16 = this_operand;
      goto LAB_00049f18;
    }
    if (peVar17->field_0x10 == '\x03') {
      pcVar13 = S_GET_NAME(peVar17->X_add_symbol);
      iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");
      if (iVar10 == 0) {
        psVar12 = peVar17->X_add_symbol;
      }
    }
    e->X_add_symbol = psVar12;
    e->X_op_symbol = (symbolS *)0x0;
    e->field_0x10 = 3;
    goto LAB_0004a395;
  case 0x1f:
    peVar9 = symbol_get_value_expression(e->X_op_symbol);
    if (peVar9->field_0x10 == '\x05') goto LAB_0004a3f0;
    psVar12 = e->X_op_symbol;
    peVar9 = symbol_get_value_expression(psVar12);
    iVar10 = i386_intel_simplify(peVar9);
    if (iVar10 == 2) {
      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));
    }
    else if (iVar10 == 0) {
      return 0;
    }
    if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;
    psVar12 = intel_state.seg;
    if (intel_state.in_offset == 0) {
      psVar12 = e->X_add_symbol;
      if (intel_state.seg != (symbolS *)0x0) {
        exp._16_1_ = 0x1f;
        exp.X_add_symbol = e->X_add_symbol;
        exp.X_op_symbol = intel_state.seg;
        psVar12 = make_expr_symbol(&exp);
      }
    }
    intel_state.seg = psVar12;
    psVar12 = e->X_op_symbol;
    local_44 = psVar12;
    local_48 = symbol_get_value_expression(psVar12);
    paVar11 = S_GET_SEGMENT(psVar12);
    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) goto LAB_0004a4cf;
    goto LAB_0004a379;
  case 0x30:
  case 0x31:
  case 0x32:
  case 0x33:
  case 0x34:
  case 0x35:
  case 0x36:
  case 0x37:
  case 0x38:
  case 0x39:
  case 0x3a:
  case 0x3b:
    if (intel_state.op_modifier == O_absent) {
      intel_state.op_modifier = (uint)bVar8;
    }
  case 0x3c:
    peVar17 = symbol_get_value_expression(e->X_add_symbol);
    if (peVar17->field_0x10 == '\x05') goto LAB_0004a3f0;
    psVar12 = e->X_add_symbol;
    peVar17 = symbol_get_value_expression(psVar12);
    iVar10 = i386_intel_simplify(peVar17);
    puVar7 = PTR__bfd_std_section_0007ffb0;
    if (iVar10 == 2) {
      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));
    }
    else if (iVar10 == 0) {
      return 0;
    }
    psVar12 = e->X_add_symbol;
    local_44 = psVar12;
    local_48 = symbol_get_value_expression(psVar12);
    paVar11 = S_GET_SEGMENT(psVar12);
    if (paVar11 == (segT)(puVar7 + 0x180)) {
LAB_0004a4cf:
      uVar14 = (uint)e->X_add_number;
      iVar10 = *(int *)((int)&e->X_add_number + 4);
      e->X_add_symbol = local_48->X_add_symbol;
      e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];
      *(int *)&e->X_add_number = (int)local_48->X_add_number;
      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)
      ;
      uVar4 = *(undefined2 *)&local_48->field_0x10;
      uVar5 = local_48->X_md;
      poVar1 = &e->X_add_number;
      oVar6 = *poVar1;
      *(uint *)poVar1 = (int)*poVar1 + uVar14;
      iVar16 = this_operand;
      *(undefined2 *)&e->field_0x10 = uVar4;
      e->X_md = uVar5;
      piVar2 = (int *)((int)&e->X_add_number + 4);
      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);
      goto LAB_00049f18;
    }
LAB_0004a379:
    if (local_48->field_0x10 == '\x03') {
      uVar19 = auStack_4c < (undefined1 *)0xc;
      uVar21 = &stack0x00000000 == (undefined1 *)0x58;
      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);
      iVar10 = 0x16;
      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";
      do {
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        uVar19 = *pbVar15 < *pbVar18;
        uVar21 = *pbVar15 == *pbVar18;
        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;
        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;
      } while ((bool)uVar21);
      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {
        local_44 = local_48->X_add_symbol;
      }
    }
    e->X_op_symbol = (symbolS *)0x0;
    e->field_0x10 = 3;
    e->X_add_symbol = local_44;
LAB_0004a395:
    if (this_operand < 0) {
      return 1;
    }
    goto LAB_00049f28;
  case 0x3d:
    psVar12 = e->X_add_symbol;
    intel_state.has_offset = 1;
    intel_state.in_offset = intel_state.in_offset + 1;
    peVar9 = symbol_get_value_expression(psVar12);
    iVar10 = i386_intel_simplify(peVar9);
    if (iVar10 == 2) {
      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));
      intel_state.in_offset = intel_state.in_offset - 1;
      iVar10 = 1;
    }
    else {
      intel_state.in_offset = intel_state.in_offset - 1;
      if (iVar10 == 0) {
        return 0;
      }
    }
    if ((((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&
        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)
       ) {
      psVar12 = e->X_add_symbol;
      local_44 = (symbolS *)iVar10;
      local_40 = psVar12;
      local_48 = symbol_get_value_expression(psVar12);
      paVar11 = S_GET_SEGMENT(psVar12);
      if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {
        uVar14 = (uint)e->X_add_number;
        iVar10 = *(int *)((int)&e->X_add_number + 4);
        e->X_add_symbol = local_48->X_add_symbol;
        e->X_op_symbol = local_48->X_op_symbol;
        *(int *)&e->X_add_number = (int)local_48->X_add_number;
        *(undefined4 *)((int)&e->X_add_number + 4) =
             *(undefined4 *)((int)&local_48->X_add_number + 4);
        uVar4 = *(undefined2 *)&local_48->field_0x10;
        uVar5 = local_48->X_md;
        poVar1 = &e->X_add_number;
        oVar6 = *poVar1;
        *(uint *)poVar1 = (int)*poVar1 + uVar14;
        *(undefined2 *)&e->field_0x10 = uVar4;
        e->X_md = uVar5;
        piVar2 = (int *)((int)&e->X_add_number + 4);
        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);
        return (int)local_44;
      }
      if (local_48->field_0x10 == '\x03') {
        uVar19 = auStack_4c < (undefined1 *)0xc;
        uVar21 = &stack0x00000000 == (undefined1 *)0x58;
        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);
        iVar10 = 0x16;
        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";
        do {
          if (iVar10 == 0) break;
          iVar10 = iVar10 + -1;
          uVar19 = *pbVar15 < *pbVar18;
          uVar21 = *pbVar15 == *pbVar18;
          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;
          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;
        } while ((bool)uVar21);
        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {
          local_40 = local_48->X_add_symbol;
        }
      }
      e->X_op_symbol = (symbolS *)0x0;
      e->field_0x10 = 3;
      e->X_add_symbol = local_40;
      return (int)local_44;
    }
    goto LAB_0004a3f0;
  }
  psVar12 = e->X_op_symbol;
  if (psVar12 != (symbolS *)0x0) {
    peVar9 = symbol_get_value_expression(psVar12);
    iVar10 = i386_intel_simplify(peVar9);
    if (iVar10 == 2) {
      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));
    }
    else if (iVar10 == 0) {
      return 0;
    }
  }
  if (e->field_0x10 == '\x13') {
    local_48 = (expressionS *)intel_state.index;
    if (this_operand < 0) {
      return 1;
    }
    if (i.op[this_operand].disps != peVar17) goto LAB_0004a3f0;
  }
  else if (((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) ||
          (local_44 != (symbolS *)intel_state.base)) goto LAB_0004a3f0;
  iVar16 = this_operand;
  if (local_48 == (expressionS *)intel_state.index) {
LAB_00049f18:
    if ((-1 < iVar16) && (e->field_0x10 == '\x03')) {
LAB_00049f28:
      if ((intel_state.in_offset == 0) &&
         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),
           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&
          (expr_section != paVar11)))) {
        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;
      }
    }
    return 1;
  }
LAB_0004a3f0:
  pcVar13 = (char *)dcgettext(0,"invalid use of register",5);
  as_bad(pcVar13);
  return 0;
}



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

int __regparm3 FUN_00049de0(int *param_1)

{
  uint *puVar1;
  uint uVar2;
  ulonglong uVar3;
  byte bVar4;
  uint uVar5;
  int iVar6;
  undefined *puVar7;
  int iVar8;
  undefined4 uVar9;
  undefined *puVar10;
  int *piVar11;
  byte *pbVar12;
  char *__s1;
  int iVar13;
  byte *pbVar14;
  undefined1 uVar15;
  bool bVar16;
  undefined1 uVar17;
  byte bVar18;
  undefined1 auStack_4c [4];
  int *local_48;
  int local_44;
  int iStack_40;
  int iStack_30;
  int iStack_2c;
  undefined1 uStack_20;
  undefined4 uStack_14;
  
  bVar18 = 0;
  iVar13 = 0;
  uStack_14 = 0x49deb;
  if (-1 < DAT_00080558) {
    iVar13 = (&DAT_00089038)[DAT_00080558];
  }
  if (DAT_00088ef4 == 0) {
    return 1;
  }
  local_44 = DAT_00088e64;
  local_48 = DAT_00088e68;
  bVar4 = *(byte *)(param_1 + 4);
  uVar5 = (uint)bVar4;
  if (bVar4 < 0x3e) {
    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);
    switch(uVar5) {
    default:
      break;
    case 2:
      if (*(short *)((int)param_1 + 0x12) != 0) {
        iVar13 = FUN_00041d50();
        return iVar13;
      }
      iVar8 = *param_1;
      if (iVar8 != 0) goto LAB_00049e58;
      if (-1 < DAT_00080558) goto LAB_0004a3ce;
      goto LAB_0004a47d;
    case 5:
      iVar13 = FUN_00041d50();
      if (iVar13 != 2) {
        return iVar13;
      }
      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)
        ;
      }
      *(undefined1 *)(param_1 + 4) = 2;
      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;
      param_1[2] = 0;
      param_1[3] = 0;
      return 2;
    case 10:
      if (DAT_00080558 < 0) {
        iVar8 = *param_1;
        if (iVar8 == 0) goto LAB_0004a47d;
        goto LAB_00049e58;
      }
      if (DAT_00088e54 == 0) {
        iVar8 = *param_1;
        if (iVar8 == 0) goto LAB_0004a3ce;
        goto LAB_00049e58;
      }
      if (DAT_00088e58 == 0) {
        uRam00088e6c = 1;
        iRam00088e70 = 0;
      }
      iVar13 = *param_1;
      DAT_00088e58 = DAT_00088e58 + 1;
      FUN_0003b610(iVar13);
      iVar8 = FUN_00049de0();
      if (iVar8 == 2) {
        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);
        if (local_48 == (int *)0x0) goto code_r0x0004a136;
code_r0x0004a795:
        iVar13 = param_1[1];
        bVar16 = true;
        piVar11 = (int *)0x0;
      }
      else {
        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {
          if (iVar8 == 0) {
            DAT_00088e58 = DAT_00088e58 + -1;
            return 0;
          }
          goto code_r0x0004a795;
        }
code_r0x0004a136:
        iVar13 = param_1[1];
        bVar16 = true;
        piVar11 = DAT_00088e68;
        if (DAT_00088e68 != (int *)0x0) {
          piVar11 = (int *)FUN_0003b610(iVar13);
          iVar13 = param_1[1];
          bVar16 = piVar11 == (int *)0x0;
        }
      }
      local_44 = iVar13;
      FUN_0003b610(iVar13);
      iVar13 = FUN_00049de0();
      if (iVar13 == 2) {
        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);
        iVar8 = 1;
      }
      else {
        bVar16 = (bool)(bVar16 & iVar13 != 0);
        iVar8 = iVar13;
      }
      if (bVar16) {
        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&
           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {
code_r0x0004a69c:
          FUN_00021620(piVar11);
          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {
            uVar5 = piVar11[2];
            iVar13 = piVar11[3];
          }
          else {
            piVar11[2] = 0;
            uVar5 = 0;
            iVar13 = 0;
            piVar11[3] = 0;
          }
          iVar13 = iVar13 * uRam00088e6c;
          uVar3 = (ulonglong)uRam00088e6c;
          uRam00088e6c = (uint)(uVar5 * uVar3);
          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;
          DAT_00088e58 = DAT_00088e58 + -1;
        }
        else {
          DAT_00088e58 = DAT_00088e58 + -1;
        }
      }
      else {
        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;
        DAT_00088e58 = DAT_00088e58 + -1;
        if (iVar8 == 0) {
          return 0;
        }
      }
      iVar6 = DAT_00080558;
      if (DAT_00088e58 == 0) {
        if (uRam00088e6c == 2 && iRam00088e70 == 0) {
          DAT_0008907c = 1;
        }
        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {
          if (uRam00088e6c == 4 && iRam00088e70 == 0) {
            DAT_0008907c = 2;
          }
          else {
            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;
            DAT_0008907c = 3;
          }
        }
        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {
          DAT_0008907c = 0;
        }
        else {
code_r0x0004a8b9:
          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);
        }
      }
      goto code_r0x00049f18;
    case 0x1d:
      iVar8 = *param_1;
      if (iVar8 != 0) {
        FUN_0003b610(iVar8);
        iVar6 = FUN_00049de0();
        if (iVar6 == 2) {
          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
        }
        else if (iVar6 == 0) {
          return 0;
        }
        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;
      }
      if (DAT_00088e50 == 0) {
        DAT_00088e54 = DAT_00088e54 + 1;
      }
      iVar13 = param_1[1];
      FUN_0003b610(iVar13);
      iVar8 = FUN_00049de0();
      if (iVar8 == 2) {
        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);
        if (DAT_00088e50 == 0) {
          DAT_00088e54 = DAT_00088e54 + -1;
        }
      }
      else {
        if (DAT_00088e50 == 0) {
          DAT_00088e54 = DAT_00088e54 + -1;
        }
        if (iVar8 == 0) {
          return 0;
        }
      }
      if (*param_1 != 0) {
        *(undefined1 *)(param_1 + 4) = 0x13;
        return 1;
      }
      iVar13 = param_1[1];
      piVar11 = (int *)FUN_0003b610(iVar13);
      puVar7 = (undefined *)FUN_00038ac0(iVar13);
      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {
        uVar2 = param_1[2];
        iVar13 = param_1[3];
        *param_1 = *piVar11;
        param_1[1] = piVar11[1];
        param_1[2] = piVar11[2];
        param_1[3] = piVar11[3];
        iVar8 = piVar11[4];
        puVar1 = (uint *)(param_1 + 2);
        uVar5 = *puVar1;
        *puVar1 = *puVar1 + uVar2;
        param_1[4] = iVar8;
        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);
        iVar6 = DAT_00080558;
        goto code_r0x00049f18;
      }
      if ((char)piVar11[4] == '\x03') {
        __s1 = (char *)FUN_00038a80(*piVar11);
        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");
        if (iVar8 == 0) {
          iVar13 = *piVar11;
        }
      }
      *param_1 = iVar13;
      param_1[1] = 0;
      *(undefined1 *)(param_1 + 4) = 3;
      goto code_r0x0004a395;
    case 0x1f:
      iVar8 = FUN_0003b610(param_1[1]);
      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;
      iVar8 = param_1[1];
      FUN_0003b610(iVar8);
      iVar6 = FUN_00049de0();
      if (iVar6 == 2) {
        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
      }
      else if (iVar6 == 0) {
        return 0;
      }
      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;
      iVar13 = DAT_00088e74;
      if (DAT_00088e50 == 0) {
        iVar13 = *param_1;
        if (DAT_00088e74 != 0) {
          uStack_20 = 0x1f;
          iStack_30 = *param_1;
          iStack_2c = DAT_00088e74;
          iVar13 = FUN_00021220(&iStack_30);
        }
      }
      DAT_00088e74 = iVar13;
      iVar13 = param_1[1];
      local_44 = iVar13;
      local_48 = (int *)FUN_0003b610(iVar13);
      puVar7 = (undefined *)FUN_00038ac0(iVar13);
      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;
      goto code_r0x0004a379;
    case 0x30:
    case 0x31:
    case 0x32:
    case 0x33:
    case 0x34:
    case 0x35:
    case 0x36:
    case 0x37:
    case 0x38:
    case 0x39:
    case 0x3a:
    case 0x3b:
      goto code_r0x00049f90;
    case 0x3c:
      goto code_r0x00049fa0;
    case 0x3d:
      iVar8 = *param_1;
      DAT_00088e4c = 1;
      DAT_00088e50 = DAT_00088e50 + 1;
      FUN_0003b610(iVar8);
      iVar6 = FUN_00049de0();
      if (iVar6 == 2) {
        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
        DAT_00088e50 = DAT_00088e50 + -1;
        iVar6 = 1;
      }
      else {
        DAT_00088e50 = DAT_00088e50 + -1;
        if (iVar6 == 0) {
          return 0;
        }
      }
      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&
          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {
        iVar13 = *param_1;
        local_44 = iVar6;
        iStack_40 = iVar13;
        local_48 = (int *)FUN_0003b610(iVar13);
        puVar7 = (undefined *)FUN_00038ac0(iVar13);
        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {
          uVar2 = param_1[2];
          iVar13 = param_1[3];
          *param_1 = *local_48;
          param_1[1] = local_48[1];
          param_1[2] = local_48[2];
          param_1[3] = local_48[3];
          iVar8 = local_48[4];
          puVar1 = (uint *)(param_1 + 2);
          uVar5 = *puVar1;
          *puVar1 = *puVar1 + uVar2;
          param_1[4] = iVar8;
          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);
          return local_44;
        }
        if ((char)local_48[4] == '\x03') {
          uVar15 = auStack_4c < (undefined1 *)0xc;
          uVar17 = &stack0x00000000 == (undefined1 *)0x58;
          pbVar12 = (byte *)FUN_00038a80(*local_48);
          iVar13 = 0x16;
          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";
          do {
            if (iVar13 == 0) break;
            iVar13 = iVar13 + -1;
            uVar15 = *pbVar12 < *pbVar14;
            uVar17 = *pbVar12 == *pbVar14;
            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;
          } while ((bool)uVar17);
          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {
            iStack_40 = *local_48;
          }
        }
        param_1[1] = 0;
        *(undefined1 *)(param_1 + 4) = 3;
        *param_1 = iStack_40;
        return local_44;
      }
      goto LAB_0004a3f0;
    }
  }
  iVar8 = *param_1;
  if (iVar8 != 0) {
LAB_00049e58:
    FUN_0003b610(iVar8);
    iVar6 = FUN_00049de0();
    if (iVar6 == 2) {
      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
      bVar4 = *(byte *)(param_1 + 4);
    }
    else {
      if (iVar6 == 0) {
        return 0;
      }
      bVar4 = *(byte *)(param_1 + 4);
    }
  }
  if ((byte)(bVar4 - 0x13) < 2) {
    local_44 = DAT_00088e64;
    local_48 = DAT_00088e68;
    if (-1 < DAT_00080558) {
      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;
      goto LAB_0004a47d;
    }
  }
  else {
    if (-1 < DAT_00080558) {
LAB_0004a3ce:
      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;
    }
    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;
LAB_0004a47d:
    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;
  }
  iVar8 = param_1[1];
  if (iVar8 != 0) {
    FUN_0003b610(iVar8);
    iVar6 = FUN_00049de0();
    if (iVar6 == 2) {
      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
    }
    else if (iVar6 == 0) {
      return 0;
    }
  }
  if ((char)param_1[4] == '\x13') {
    local_48 = DAT_00088e68;
    if (DAT_00080558 < 0) {
      return 1;
    }
    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;
  }
  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||
          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;
  iVar6 = DAT_00080558;
  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;
  goto code_r0x00049f18;
code_r0x00049f90:
  if (DAT_00088e40 == 1) {
    DAT_00088e40 = uVar5;
  }
code_r0x00049fa0:
  iVar13 = FUN_0003b610(*param_1);
  if (*(char *)(iVar13 + 0x10) == '\x05') {
LAB_0004a3f0:
    uVar9 = dcgettext(0,"invalid use of register",5);
    FUN_0002bd60(uVar9);
    return 0;
  }
  iVar13 = *param_1;
  FUN_0003b610(iVar13);
  iVar8 = FUN_00049de0();
  puVar7 = PTR__bfd_std_section_0007ffb0;
  if (iVar8 == 2) {
    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);
  }
  else if (iVar8 == 0) {
    return 0;
  }
  iVar13 = *param_1;
  local_44 = iVar13;
  local_48 = (int *)FUN_0003b610(iVar13);
  puVar10 = (undefined *)FUN_00038ac0(iVar13);
  if (puVar10 != puVar7 + 0x180) {
code_r0x0004a379:
    if ((char)local_48[4] == '\x03') {
      uVar15 = auStack_4c < (undefined1 *)0xc;
      uVar17 = &stack0x00000000 == (undefined1 *)0x58;
      pbVar12 = (byte *)FUN_00038a80(*local_48);
      iVar13 = 0x16;
      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";
      do {
        if (iVar13 == 0) break;
        iVar13 = iVar13 + -1;
        uVar15 = *pbVar12 < *pbVar14;
        uVar17 = *pbVar12 == *pbVar14;
        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;
      } while ((bool)uVar17);
      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {
        local_44 = *local_48;
      }
    }
    param_1[1] = 0;
    *(undefined1 *)(param_1 + 4) = 3;
    *param_1 = local_44;
code_r0x0004a395:
    if (DAT_00080558 < 0) {
      return 1;
    }
    goto code_r0x00049f28;
  }
code_r0x0004a4cf:
  uVar2 = param_1[2];
  iVar13 = param_1[3];
  *param_1 = *local_48;
  param_1[1] = local_48[1];
  param_1[2] = local_48[2];
  param_1[3] = local_48[3];
  iVar8 = local_48[4];
  puVar1 = (uint *)(param_1 + 2);
  uVar5 = *puVar1;
  *puVar1 = *puVar1 + uVar2;
  iVar6 = DAT_00080558;
  param_1[4] = iVar8;
  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);
code_r0x00049f18:
  if (iVar6 < 0) {
    return 1;
  }
  if ((char)param_1[4] != '\x03') {
    return 1;
  }
code_r0x00049f28:
  if ((((DAT_00088e50 == 0) &&
       (puVar7 = (undefined *)FUN_00038ac0(*param_1),
       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&
     (DAT_00089720 != puVar7)) {
    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;
  }
  return 1;
}


PUSH EBP
PUSH EDI
XOR EDI,EDI
PUSH ESI
PUSH EBX
CALL 0x00016000
ADD EBX,0x36215
SUB ESP,0x3c
MOV EDX,dword ptr [EBX + 0x558]
TEST EDX,EDX
JS 0x00049e05
MOV EDI,dword ptr [EBX + EDX*0x4 + 0x9038]
MOV ECX,dword ptr [EBX + 0x8ef4]
TEST ECX,ECX
JZ 0x00049f80
MOV EBP,EAX
MOV EAX,dword ptr [EBX + 0x8e64]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EBX + 0x8e68]
MOV dword ptr [ESP + 0x4],EAX
MOVZX EAX,byte ptr [EBP + 0x10]
CMP AL,0x3d
JA 0x0004a460
MOVZX ECX,AL
MOV ESI,dword ptr [EBX + ECX*0x4 + 0xfffe4b68]
ADD ESI,EBX
JMP ESI
SUB ESP,0xc
PUSH ESI
CALL 0x0003b610
CALL 0x00049de0
ADD ESP,0x10
CMP EAX,0x2
JZ 0x0004a5b0
TEST EAX,EAX
JZ 0x00049fdd
MOVZX EAX,byte ptr [EBP + 0x10]
MOV EDX,dword ptr [EBX + 0x558]
SUB EAX,0x13
CMP AL,0x1
JA 0x0004a560
MOV EAX,dword ptr [EBX + 0x8e64]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EBX + 0x8e68]
MOV dword ptr [ESP + 0x4],EAX
TEST EDX,EDX
JNS 0x0004a470
MOV ESI,dword ptr [EBP + 0x4]
TEST ESI,ESI
JZ 0x00049eda
SUB ESP,0xc
PUSH ESI
CALL 0x0003b610
CALL 0x00049de0
ADD ESP,0x10
CMP EAX,0x2
JZ 0x0004a6ff
TEST EAX,EAX
JZ 0x00049fdd
MOV EDX,dword ptr [EBX + 0x558]
CMP byte ptr [EBP + 0x10],0x13
JZ 0x0004a508
TEST EDX,EDX
JS 0x00049ef5
CMP EDI,dword ptr [EBX + EDX*0x4 + 0x9038]
JNZ 0x0004a3f0
MOV EAX,dword ptr [ESP + 0x8]
CMP EAX,dword ptr [EBX + 0x8e64]
JNZ 0x0004a3f0
MOV EAX,dword ptr [ESP + 0x4]
CMP EAX,dword ptr [EBX + 0x8e68]
JNZ 0x0004a3f0
LEA ESI,[ESI]
TEST EDX,EDX
JS 0x00049f80
CMP byte ptr [EBP + 0x10],0x3
JNZ 0x00049f80
LEA ESI,[ESI]
MOV ECX,dword ptr [EBX + 0x8e50]
TEST ECX,ECX
JNZ 0x00049f80
SUB ESP,0xc
PUSH dword ptr [EBP]
CALL 0x00038ac0
MOV EDX,dword ptr [EBX + 0xffffffb0]
ADD ESP,0x10
ADD EDX,0x180
CMP EAX,EDX
JZ 0x00049f80
LEA EDX,[EBX + 0x97ec]
CMP dword ptr [EDX],EAX
JZ 0x00049f80
LEA EDX,[EBX + 0x9720]
CMP dword ptr [EDX],EAX
JZ 0x00049f80
MOV EDX,dword ptr [EBX + 0x8e54]
XOR EAX,EAX
TEST EDX,EDX
SETNZ AL
ADD EAX,0x1
OR dword ptr [EBX + 0x8e44],EAX
LEA ESI,[ESI]
MOV EDX,0x1
ADD ESP,0x3c
MOV EAX,EDX
POP EBX
POP ESI
POP EDI
POP EBP
RET
XOR EDX,EDX
ADD ESP,0x3c
MOV EAX,EDX
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EDI,dword ptr [EBX + EDX*0x4 + 0x9038]
JNZ 0x0004a3f0
MOV EAX,dword ptr [ESP + 0x8]
CMP EAX,dword ptr [EBX + 0x8e64]
JZ 0x0004a47d
LEA ESI,[ESI]
NOP
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe3b31]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
MOV dword ptr [ESP],EAX
CALL 0x0002bd60
ADD ESP,0x10
XOR EDX,EDX
JMP 0x00049fdf
MOV ESI,dword ptr [EBP]
TEST ESI,ESI
JNZ 0x00049e58
JMP 0x00049e84
CMP EDI,dword ptr [EBX + EDX*0x4 + 0x9038]
JNZ 0x0004a3f0
MOV EAX,dword ptr [ESP + 0x4]
CMP EAX,dword ptr [EBX + 0x8e68]
JNZ 0x0004a3f0
JMP 0x00049eab
MOV EAX,dword ptr [EBX + 0x8e68]
MOV dword ptr [ESP + 0x4],EAX
TEST EDX,EDX
JS 0x00049f80
CMP dword ptr [EBX + EDX*0x4 + 0x9038],EDI
JNZ 0x0004a3f0
JMP 0x00049f05
TEST EDX,EDX
JS 0x0004a3d7
JMP 0x0004a3ce
MOV EAX,dword ptr [EBX + 0xffffffb0]
SUB ESP,0x8
ADD EAX,0x180
PUSH EAX
PUSH ESI
CALL 0x00038b00
MOVZX EAX,byte ptr [EBP + 0x10]
MOV EDX,dword ptr [EBX + 0x558]
ADD ESP,0x10
JMP 0x00049e84
MOV EAX,dword ptr [EBX + 0xffffffb0]
SUB ESP,0x8
ADD EAX,0x180
PUSH EAX
PUSH ESI
CALL 0x00038b00
ADD ESP,0x10
MOV EDX,dword ptr [EBX + 0x558]
JMP 0x00049eda
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_00049de0(int *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  int *piVar11;\n  byte *pbVar12;\n  char *__s1;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_4c [4];\n  int *local_48;\n  int local_44;\n  int iStack_40;\n  int iStack_30;\n  int iStack_2c;\n  undefined1 uStack_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar13 = 0;\n  uStack_14 = 0x49deb;\n  if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }\n  if (DAT_00088ef4 == 0) {\n    return 1;\n  }\n  local_44 = DAT_00088e64;\n  local_48 = DAT_00088e68;\n  bVar4 = *(byte *)(param_1 + 4);\n  uVar5 = (uint)bVar4;\n  if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }\n  iVar8 = *param_1;\n  if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }\n  if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }\n  iVar8 = param_1[1];\n  if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }\n  if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;\n  iVar6 = DAT_00080558;\n  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  goto code_r0x00049f18;\ncode_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }\ncode_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);\n  if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }\n  iVar13 = *param_1;\n  FUN_0003b610(iVar13);\n  iVar8 = FUN_00049de0();\n  puVar7 = PTR__bfd_std_section_0007ffb0;\n  if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }\n  iVar13 = *param_1;\n  local_44 = iVar13;\n  local_48 = (int *)FUN_0003b610(iVar13);\n  puVar10 = (undefined *)FUN_00038ac0(iVar13);\n  if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }\ncode_r0x0004a4cf:\n  uVar2 = param_1[2];\n  iVar13 = param_1[3];\n  *param_1 = *local_48;\n  param_1[1] = local_48[1];\n  param_1[2] = local_48[2];\n  param_1[3] = local_48[3];\n  iVar8 = local_48[4];\n  puVar1 = (uint *)(param_1 + 2);\n  uVar5 = *puVar1;\n  *puVar1 = *puVar1 + uVar2;\n  iVar6 = DAT_00080558;\n  param_1[4] = iVar8;\n  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\ncode_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }\n  if ((char)param_1[4] != '\x03') {\n    return 1;\n  }\ncode_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }\n  return 1;\n}\n\n" comment (function_definition "int __regparm3 FUN_00049de0(int *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  int *piVar11;\n  byte *pbVar12;\n  char *__s1;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_4c [4];\n  int *local_48;\n  int local_44;\n  int iStack_40;\n  int iStack_30;\n  int iStack_2c;\n  undefined1 uStack_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar13 = 0;\n  uStack_14 = 0x49deb;\n  if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }\n  if (DAT_00088ef4 == 0) {\n    return 1;\n  }\n  local_44 = DAT_00088e64;\n  local_48 = DAT_00088e68;\n  bVar4 = *(byte *)(param_1 + 4);\n  uVar5 = (uint)bVar4;\n  if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }\n  iVar8 = *param_1;\n  if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }\n  if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }\n  iVar8 = param_1[1];\n  if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }\n  if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;\n  iVar6 = DAT_00080558;\n  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  goto code_r0x00049f18;\ncode_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }\ncode_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);\n  if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }\n  iVar13 = *param_1;\n  FUN_0003b610(iVar13);\n  iVar8 = FUN_00049de0();\n  puVar7 = PTR__bfd_std_section_0007ffb0;\n  if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }\n  iVar13 = *param_1;\n  local_44 = iVar13;\n  local_48 = (int *)FUN_0003b610(iVar13);\n  puVar10 = (undefined *)FUN_00038ac0(iVar13);\n  if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }\ncode_r0x0004a4cf:\n  uVar2 = param_1[2];\n  iVar13 = param_1[3];\n  *param_1 = *local_48;\n  param_1[1] = local_48[1];\n  param_1[2] = local_48[2];\n  param_1[3] = local_48[3];\n  iVar8 = local_48[4];\n  puVar1 = (uint *)(param_1 + 2);\n  uVar5 = *puVar1;\n  *puVar1 = *puVar1 + uVar2;\n  iVar6 = DAT_00080558;\n  param_1[4] = iVar8;\n  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\ncode_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }\n  if ((char)param_1[4] != '\x03') {\n    return 1;\n  }\ncode_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }\n  return 1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00049de0(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  int *piVar11;\n  byte *pbVar12;\n  char *__s1;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_4c [4];\n  int *local_48;\n  int local_44;\n  int iStack_40;\n  int iStack_30;\n  int iStack_2c;\n  undefined1 uStack_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar13 = 0;\n  uStack_14 = 0x49deb;\n  if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }\n  if (DAT_00088ef4 == 0) {\n    return 1;\n  }\n  local_44 = DAT_00088e64;\n  local_48 = DAT_00088e68;\n  bVar4 = *(byte *)(param_1 + 4);\n  uVar5 = (uint)bVar4;\n  if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }\n  iVar8 = *param_1;\n  if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }\n  if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }\n  iVar8 = param_1[1];\n  if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }\n  if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;\n  iVar6 = DAT_00080558;\n  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  goto code_r0x00049f18;\ncode_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }\ncode_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);\n  if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }\n  iVar13 = *param_1;\n  FUN_0003b610(iVar13);\n  iVar8 = FUN_00049de0();\n  puVar7 = PTR__bfd_std_section_0007ffb0;\n  if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }\n  iVar13 = *param_1;\n  local_44 = iVar13;\n  local_48 = (int *)FUN_0003b610(iVar13);\n  puVar10 = (undefined *)FUN_00038ac0(iVar13);\n  if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }\ncode_r0x0004a4cf:\n  uVar2 = param_1[2];\n  iVar13 = param_1[3];\n  *param_1 = *local_48;\n  param_1[1] = local_48[1];\n  param_1[2] = local_48[2];\n  param_1[3] = local_48[3];\n  iVar8 = local_48[4];\n  puVar1 = (uint *)(param_1 + 2);\n  uVar5 = *puVar1;\n  *puVar1 = *puVar1 + uVar2;\n  iVar6 = DAT_00080558;\n  param_1[4] = iVar8;\n  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\ncode_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }\n  if ((char)param_1[4] != '\x03') {\n    return 1;\n  }\ncode_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }\n  return 1;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ulonglong uVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "undefined1 auStack_4c [4];" type_identifier (array_declarator "auStack_4c [4]" identifier [ number_literal ]) ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int iStack_40;" primitive_type identifier ;) (declaration "int iStack_30;" primitive_type identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (declaration "undefined1 uStack_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x49deb;" (assignment_expression "uStack_14 = 0x49deb" identifier = number_literal) ;) (if_statement "if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }" if (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) (compound_statement "{\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }" { (expression_statement "iVar13 = (&DAT_00089038)[DAT_00080558];" (assignment_expression "iVar13 = (&DAT_00089038)[DAT_00080558]" identifier = (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ;) })) (if_statement "if (DAT_00088ef4 == 0) {\n    return 1;\n  }" if (parenthesized_expression "(DAT_00088ef4 == 0)" ( (binary_expression "DAT_00088ef4 == 0" identifier == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_44 = DAT_00088e64;" (assignment_expression "local_44 = DAT_00088e64" identifier = identifier) ;) (expression_statement "local_48 = DAT_00088e68;" (assignment_expression "local_48 = DAT_00088e68" identifier = identifier) ;) (expression_statement "bVar4 = *(byte *)(param_1 + 4);" (assignment_expression "bVar4 = *(byte *)(param_1 + 4)" identifier = (pointer_expression "*(byte *)(param_1 + 4)" * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = (uint)bVar4;" (assignment_expression "uVar5 = (uint)bVar4" identifier = (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }" if (parenthesized_expression "(bVar4 < 0x3e)" ( (binary_expression "bVar4 < 0x3e" identifier < number_literal) )) (compound_statement "{\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }" { (expression_statement "iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);" (assignment_expression "iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4)" identifier = (pointer_expression "*(int *)(&DAT_00064b68 + uVar5 * 4)" * (cast_expression "(int *)(&DAT_00064b68 + uVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00064b68 + uVar5 * 4)" ( (binary_expression "&DAT_00064b68 + uVar5 * 4" (pointer_expression "&DAT_00064b68" & identifier) + (binary_expression "uVar5 * 4" identifier * number_literal)) ))))) ;) (switch_statement "switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }" switch (parenthesized_expression "(uVar5)" ( identifier )) (compound_statement "{\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }" { (case_statement "default:\n      break;" default : (break_statement "break;" break ;)) (case_statement "case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;" case number_literal : (if_statement "if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }" if (parenthesized_expression "(*(short *)((int)param_1 + 0x12) != 0)" ( (binary_expression "*(short *)((int)param_1 + 0x12) != 0" (pointer_expression "*(short *)((int)param_1 + 0x12)" * (cast_expression "(short *)((int)param_1 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }" { (expression_statement "iVar13 = FUN_00041d50();" (assignment_expression "iVar13 = FUN_00041d50()" identifier = (call_expression "FUN_00041d50()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar13;" return identifier ;) })) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 != 0) goto LAB_00049e58;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00049e58;" goto statement_identifier ;)) (if_statement "if (-1 < DAT_00080558) goto LAB_0004a3ce;" if (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) (goto_statement "goto LAB_0004a3ce;" goto statement_identifier ;)) (goto_statement "goto LAB_0004a47d;" goto statement_identifier ;)) (case_statement "case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;" case number_literal : (expression_statement "iVar13 = FUN_00041d50();" (assignment_expression "iVar13 = FUN_00041d50()" identifier = (call_expression "FUN_00041d50()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar13 != 2) {\n        return iVar13;\n      }" if (parenthesized_expression "(iVar13 != 2)" ( (binary_expression "iVar13 != 2" identifier != number_literal) )) (compound_statement "{\n        return iVar13;\n      }" { (return_statement "return iVar13;" return identifier ;) })) (if_statement "if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }" if (parenthesized_expression "(-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2]))" ( (binary_expression "-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])" (unary_expression "-param_1[3]" - (subscript_expression "param_1[3]" identifier [ number_literal ])) < (cast_expression "(int)(uint)(0xfffe < (uint)param_1[2])" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0xfffe < (uint)param_1[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffe < (uint)param_1[2])" ( (binary_expression "0xfffe < (uint)param_1[2]" number_literal < (cast_expression "(uint)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }" { comment (expression_statement "FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;" (call_expression "FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)" identifier (argument_list "("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)" ( (string_literal ""../../gas/config/tc-i386-intel.c"" " string_content ") , number_literal , (string_literal ""i386_intel_simplify"" " string_content ") , (binary_expression "iVar8 + 0x80000" identifier + number_literal) ))) ;) })) (expression_statement "*(undefined1 *)(param_1 + 4) = 2;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 2" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;" (assignment_expression "*(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1" (pointer_expression "*(short *)((int)param_1 + 0x12)" * (cast_expression "(short *)((int)param_1 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(short)param_1[2] + 1" (cast_expression "(short)param_1[2]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return 2;" return number_literal ;)) (case_statement "case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;" case number_literal : (if_statement "if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }" if (parenthesized_expression "(DAT_00080558 < 0)" ( (binary_expression "DAT_00080558 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }" { (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 == 0) goto LAB_0004a47d;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a47d;" goto statement_identifier ;)) (goto_statement "goto LAB_00049e58;" goto statement_identifier ;) })) (if_statement "if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }" if (parenthesized_expression "(DAT_00088e54 == 0)" ( (binary_expression "DAT_00088e54 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }" { (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 == 0) goto LAB_0004a3ce;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a3ce;" goto statement_identifier ;)) (goto_statement "goto LAB_00049e58;" goto statement_identifier ;) })) (if_statement "if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }" if (parenthesized_expression "(DAT_00088e58 == 0)" ( (binary_expression "DAT_00088e58 == 0" identifier == number_literal) )) (compound_statement "{\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }" { (expression_statement "uRam00088e6c = 1;" (assignment_expression "uRam00088e6c = 1" identifier = number_literal) ;) (expression_statement "iRam00088e70 = 0;" (assignment_expression "iRam00088e70 = 0" identifier = number_literal) ;) })) (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "DAT_00088e58 = DAT_00088e58 + 1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + 1" identifier = (binary_expression "DAT_00088e58 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "iVar8 = FUN_00049de0();" (assignment_expression "iVar8 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }" { (expression_statement "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (if_statement "if (local_48 == (int *)0x0) goto code_r0x0004a136;" if (parenthesized_expression "(local_48 == (int *)0x0)" ( (binary_expression "local_48 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x0004a136;" goto statement_identifier ;)) (labeled_statement "code_r0x0004a795:\n        iVar13 = param_1[1];" statement_identifier : (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (expression_statement "piVar11 = (int *)0x0;" (assignment_expression "piVar11 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }" else (compound_statement "{\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }" { (if_statement "if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }" if (parenthesized_expression "((iVar8 == 0) || (local_48 != (int *)0x0))" ( (binary_expression "(iVar8 == 0) || (local_48 != (int *)0x0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_48 != (int *)0x0)" ( (binary_expression "local_48 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }" { (if_statement "if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }" { (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" identifier = (binary_expression "DAT_00088e58 + -1" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto code_r0x0004a795;" goto statement_identifier ;) })) (labeled_statement "code_r0x0004a136:\n        iVar13 = param_1[1];" statement_identifier : (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (expression_statement "piVar11 = DAT_00088e68;" (assignment_expression "piVar11 = DAT_00088e68" identifier = identifier) ;) (if_statement "if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }" if (parenthesized_expression "(DAT_00088e68 != (int *)0x0)" ( (binary_expression "DAT_00088e68 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }" { (expression_statement "piVar11 = (int *)FUN_0003b610(iVar13);" (assignment_expression "piVar11 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "bVar16 = piVar11 == (int *)0x0;" (assignment_expression "bVar16 = piVar11 == (int *)0x0" identifier = (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) }))) (expression_statement "local_44 = iVar13;" (assignment_expression "local_44 = iVar13" identifier = identifier) ;) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "iVar13 = FUN_00049de0();" (assignment_expression "iVar13 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }" if (parenthesized_expression "(iVar13 == 2)" ( (binary_expression "iVar13 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }" { (expression_statement "FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(local_44,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }" else (compound_statement "{\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }" { (expression_statement "bVar16 = (bool)(bVar16 & iVar13 != 0);" (assignment_expression "bVar16 = (bool)(bVar16 & iVar13 != 0)" identifier = (cast_expression "(bool)(bVar16 & iVar13 != 0)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar16 & iVar13 != 0)" ( (binary_expression "bVar16 & iVar13 != 0" identifier & (binary_expression "iVar13 != 0" identifier != number_literal)) )))) ;) (expression_statement "iVar8 = iVar13;" (assignment_expression "iVar8 = iVar13" identifier = identifier) ;) }))) (if_statement "if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }" { (if_statement "if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" if (parenthesized_expression "(((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0))" ( (binary_expression "((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)" (parenthesized_expression "((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0))" ( (binary_expression "(local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)" (parenthesized_expression "(local_48 == (int *)0x0)" ( (binary_expression "local_48 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(DAT_00088e68 != (int *)0x0)" ( (binary_expression "DAT_00088e68 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)" ( (comma_expression "piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0" (assignment_expression "piVar11 = (int *)FUN_0003b610(*param_1)" identifier = (cast_expression "(int *)FUN_0003b610(*param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))))) , (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" { (labeled_statement "code_r0x0004a69c:\n          FUN_00021620(piVar11);" statement_identifier : (expression_statement "FUN_00021620(piVar11);" (call_expression "FUN_00021620(piVar11)" identifier (argument_list "(piVar11)" ( identifier ))) ;)) (if_statement "if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }" if (parenthesized_expression "(((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0))" ( (binary_expression "((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)" (parenthesized_expression "((char)piVar11[4] == '\x02')" ( (binary_expression "(char)piVar11[4] == '\x02'" (cast_expression "(char)piVar11[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar11[4]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)" ( (binary_expression "(*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0" (parenthesized_expression "(*(byte *)((int)DAT_00088e68 + 7) & 0x40)" ( (binary_expression "*(byte *)((int)DAT_00088e68 + 7) & 0x40" (pointer_expression "*(byte *)((int)DAT_00088e68 + 7)" * (cast_expression "(byte *)((int)DAT_00088e68 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_00088e68 + 7)" ( (binary_expression "(int)DAT_00088e68 + 7" (cast_expression "(int)DAT_00088e68" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }" { (expression_statement "uVar5 = piVar11[2];" (assignment_expression "uVar5 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = piVar11[3];" (assignment_expression "iVar13 = piVar11[3]" identifier = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }" else (compound_statement "{\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }" { (expression_statement "piVar11[2] = 0;" (assignment_expression "piVar11[2] = 0" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "piVar11[3] = 0;" (assignment_expression "piVar11[3] = 0" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "iVar13 = iVar13 * uRam00088e6c;" (assignment_expression "iVar13 = iVar13 * uRam00088e6c" identifier = (binary_expression "iVar13 * uRam00088e6c" identifier * identifier)) ;) (expression_statement "uVar3 = (ulonglong)uRam00088e6c;" (assignment_expression "uVar3 = (ulonglong)uRam00088e6c" identifier = (cast_expression "(ulonglong)uRam00088e6c" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "uRam00088e6c = (uint)(uVar5 * uVar3);" (assignment_expression "uRam00088e6c = (uint)(uVar5 * uVar3)" identifier = (call_expression "(uint)(uVar5 * uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 * uVar3)" ( (binary_expression "uVar5 * uVar3" identifier * identifier) )))) ;) (expression_statement "iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;" (assignment_expression "iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13" identifier = (binary_expression "(int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13" (binary_expression "(int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5" (cast_expression "(int)(uVar5 * uVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 * uVar3 >> 0x20)" ( (binary_expression "uVar5 * uVar3 >> 0x20" (binary_expression "uVar5 * uVar3" identifier * identifier) >> number_literal) ))) + (binary_expression "iRam00088e70 * uVar5" identifier * identifier)) + identifier)) ;) (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" identifier = (binary_expression "DAT_00088e58 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" else (compound_statement "{\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" { (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" identifier = (binary_expression "DAT_00088e58 + -1" identifier + number_literal)) ;) }))) }) (else_clause "else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" else (compound_statement "{\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" { (if_statement "if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;" if (parenthesized_expression "((piVar11 != (int *)0x0) && (iVar13 != 0))" ( (binary_expression "(piVar11 != (int *)0x0) && (iVar13 != 0)" (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) ))) )) (goto_statement "goto code_r0x0004a69c;" goto statement_identifier ;)) (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" identifier = (binary_expression "DAT_00088e58 + -1" identifier + number_literal)) ;) (if_statement "if (iVar8 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" identifier = identifier) ;) (if_statement "if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }" if (parenthesized_expression "(DAT_00088e58 == 0)" ( (binary_expression "DAT_00088e58 == 0" identifier == number_literal) )) (compound_statement "{\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }" { (if_statement "if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" if (parenthesized_expression "(uRam00088e6c == 2 && iRam00088e70 == 0)" ( (binary_expression "uRam00088e6c == 2 && iRam00088e70 == 0" (binary_expression "uRam00088e6c == 2" identifier == number_literal) && (binary_expression "iRam00088e70 == 0" identifier == number_literal)) )) (compound_statement "{\n          DAT_0008907c = 1;\n        }" { (expression_statement "DAT_0008907c = 1;" (assignment_expression "DAT_0008907c = 1" identifier = number_literal) ;) }) (else_clause "else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" else (if_statement "if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" if (parenthesized_expression "(-iRam00088e70 < (int)(uint)(2 < uRam00088e6c))" ( (binary_expression "-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)" (unary_expression "-iRam00088e70" - identifier) < (cast_expression "(int)(uint)(2 < uRam00088e6c)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(2 < uRam00088e6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(2 < uRam00088e6c)" ( (binary_expression "2 < uRam00088e6c" number_literal < identifier) ))))) )) (compound_statement "{\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }" { (if_statement "if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }" if (parenthesized_expression "(uRam00088e6c == 4 && iRam00088e70 == 0)" ( (binary_expression "uRam00088e6c == 4 && iRam00088e70 == 0" (binary_expression "uRam00088e6c == 4" identifier == number_literal) && (binary_expression "iRam00088e70 == 0" identifier == number_literal)) )) (compound_statement "{\n            DAT_0008907c = 2;\n          }" { (expression_statement "DAT_0008907c = 2;" (assignment_expression "DAT_0008907c = 2" identifier = number_literal) ;) }) (else_clause "else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }" else (compound_statement "{\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }" { (if_statement "if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;" if (parenthesized_expression "(iRam00088e70 != 0 || uRam00088e6c != 8)" ( (binary_expression "iRam00088e70 != 0 || uRam00088e6c != 8" (binary_expression "iRam00088e70 != 0" identifier != number_literal) || (binary_expression "uRam00088e6c != 8" identifier != number_literal)) )) (goto_statement "goto code_r0x0004a8b9;" goto statement_identifier ;)) (expression_statement "DAT_0008907c = 3;" (assignment_expression "DAT_0008907c = 3" identifier = number_literal) ;) }))) }) (else_clause "else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" else (if_statement "if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" if (parenthesized_expression "(iRam00088e70 == 0 && uRam00088e6c == 1)" ( (binary_expression "iRam00088e70 == 0 && uRam00088e6c == 1" (binary_expression "iRam00088e70 == 0" identifier == number_literal) && (binary_expression "uRam00088e6c == 1" identifier == number_literal)) )) (compound_statement "{\n          DAT_0008907c = 0;\n        }" { (expression_statement "DAT_0008907c = 0;" (assignment_expression "DAT_0008907c = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" else (compound_statement "{\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" { (labeled_statement "code_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);" statement_identifier : (expression_statement "DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);" (assignment_expression "DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0)" identifier = (cast_expression "(int *)(PTR_i386_regtab_0007ff5c + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_i386_regtab_0007ff5c + 0x2d0)" ( (binary_expression "PTR_i386_regtab_0007ff5c + 0x2d0" identifier + number_literal) )))) ;)) }))))))) })) (goto_statement "goto code_r0x00049f18;" goto statement_identifier ;)) (case_statement "case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;" case number_literal : (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }" { (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) }) (else_clause "else if (iVar6 == 0) {\n          return 0;\n        }" else (if_statement "if (iVar6 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })))) (if_statement "if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;" if (parenthesized_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558]))" ( (binary_expression "(-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) && (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) })) (if_statement "if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }" if (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }" { (expression_statement "DAT_00088e54 = DAT_00088e54 + 1;" (assignment_expression "DAT_00088e54 = DAT_00088e54 + 1" identifier = (binary_expression "DAT_00088e54 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "iVar8 = FUN_00049de0();" (assignment_expression "iVar8 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }" { (expression_statement "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (if_statement "if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" if (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" { (expression_statement "DAT_00088e54 = DAT_00088e54 + -1;" (assignment_expression "DAT_00088e54 = DAT_00088e54 + -1" identifier = (binary_expression "DAT_00088e54 + -1" identifier + number_literal)) ;) })) }) (else_clause "else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" else (compound_statement "{\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" { (if_statement "if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" if (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" { (expression_statement "DAT_00088e54 = DAT_00088e54 + -1;" (assignment_expression "DAT_00088e54 = DAT_00088e54 + -1" identifier = (binary_expression "DAT_00088e54 + -1" identifier + number_literal)) ;) })) (if_statement "if (iVar8 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }))) (if_statement "if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }" if (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 4) = 0x13;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0x13" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "piVar11 = (int *)FUN_0003b610(iVar13);" (assignment_expression "piVar11 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "puVar7 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(iVar13)" identifier = (cast_expression "(undefined *)FUN_00038ac0(iVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (if_statement "if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }" if (parenthesized_expression "(puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180" identifier == (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal)) )) (compound_statement "{\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }" { (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = *piVar11;" (assignment_expression "*param_1 = *piVar11" (pointer_expression "*param_1" * identifier) = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "param_1[1] = piVar11[1];" (assignment_expression "param_1[1] = piVar11[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = piVar11[2];" (assignment_expression "param_1[2] = piVar11[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = piVar11[3];" (assignment_expression "param_1[3] = piVar11[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar11[4];" (assignment_expression "iVar8 = piVar11[4]" identifier = (subscript_expression "piVar11[4]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (uint *)(param_1 + 2);" (assignment_expression "puVar1 = (uint *)(param_1 + 2)" identifier = (cast_expression "(uint *)(param_1 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + uVar2;" (assignment_expression "*puVar1 = *puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) + identifier)) ;) (expression_statement "param_1[4] = iVar8;" (assignment_expression "param_1[4] = iVar8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);" (assignment_expression "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (binary_expression "param_1[3] + iVar13" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier) + (cast_expression "(uint)CARRY4(uVar5,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar2)" identifier (argument_list "(uVar5,uVar2)" ( identifier , identifier )))))) ;) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" identifier = identifier) ;) (goto_statement "goto code_r0x00049f18;" goto statement_identifier ;) })) (if_statement "if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }" if (parenthesized_expression "((char)piVar11[4] == '\x03')" ( (binary_expression "(char)piVar11[4] == '\x03'" (cast_expression "(char)piVar11[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar11[4]" identifier [ number_literal ])) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }" { (expression_statement "__s1 = (char *)FUN_00038a80(*piVar11);" (assignment_expression "__s1 = (char *)FUN_00038a80(*piVar11)" identifier = (cast_expression "(char *)FUN_00038a80(*piVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038a80(*piVar11)" identifier (argument_list "(*piVar11)" ( (pointer_expression "*piVar11" * identifier) ))))) ;) (expression_statement "iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");" (assignment_expression "iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_")" identifier = (call_expression "strcmp(__s1,"_GLOBAL_OFFSET_TABLE_")" identifier (argument_list "(__s1,"_GLOBAL_OFFSET_TABLE_")" ( identifier , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar13 = *piVar11;\n        }" { (expression_statement "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) })) })) (expression_statement "*param_1 = iVar13;" (assignment_expression "*param_1 = iVar13" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 3" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto code_r0x0004a395;" goto statement_identifier ;)) (case_statement "case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;" case number_literal : (expression_statement "iVar8 = FUN_0003b610(param_1[1]);" (assignment_expression "iVar8 = FUN_0003b610(param_1[1])" identifier = (call_expression "FUN_0003b610(param_1[1])" identifier (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;" if (parenthesized_expression "(*(char *)(iVar8 + 0x10) == '\x05')" ( (binary_expression "*(char *)(iVar8 + 0x10) == '\x05'" (pointer_expression "*(char *)(iVar8 + 0x10)" * (cast_expression "(char *)(iVar8 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (expression_statement "iVar8 = param_1[1];" (assignment_expression "iVar8 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) }) (else_clause "else if (iVar6 == 0) {\n        return 0;\n      }" else (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })))) (if_statement "if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;" if (parenthesized_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558]))" ( (binary_expression "(-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) && (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (expression_statement "iVar13 = DAT_00088e74;" (assignment_expression "iVar13 = DAT_00088e74" identifier = identifier) ;) (if_statement "if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }" if (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }" { (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }" if (parenthesized_expression "(DAT_00088e74 != 0)" ( (binary_expression "DAT_00088e74 != 0" identifier != number_literal) )) (compound_statement "{\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }" { (expression_statement "uStack_20 = 0x1f;" (assignment_expression "uStack_20 = 0x1f" identifier = number_literal) ;) (expression_statement "iStack_30 = *param_1;" (assignment_expression "iStack_30 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iStack_2c = DAT_00088e74;" (assignment_expression "iStack_2c = DAT_00088e74" identifier = identifier) ;) (expression_statement "iVar13 = FUN_00021220(&iStack_30);" (assignment_expression "iVar13 = FUN_00021220(&iStack_30)" identifier = (call_expression "FUN_00021220(&iStack_30)" identifier (argument_list "(&iStack_30)" ( (pointer_expression "&iStack_30" & identifier) )))) ;) })) })) (expression_statement "DAT_00088e74 = iVar13;" (assignment_expression "DAT_00088e74 = iVar13" identifier = identifier) ;) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_44 = iVar13;" (assignment_expression "local_44 = iVar13" identifier = identifier) ;) (expression_statement "local_48 = (int *)FUN_0003b610(iVar13);" (assignment_expression "local_48 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "puVar7 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(iVar13)" identifier = (cast_expression "(undefined *)FUN_00038ac0(iVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (if_statement "if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;" if (parenthesized_expression "(puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180" identifier == (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal)) )) (goto_statement "goto code_r0x0004a4cf;" goto statement_identifier ;)) (goto_statement "goto code_r0x0004a379;" goto statement_identifier ;)) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:\n      goto code_r0x00049f90;" case number_literal : (goto_statement "goto code_r0x00049f90;" goto statement_identifier ;)) (case_statement "case 0x3c:\n      goto code_r0x00049fa0;" case number_literal : (goto_statement "goto code_r0x00049fa0;" goto statement_identifier ;)) (case_statement "case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;" case number_literal : (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "DAT_00088e4c = 1;" (assignment_expression "DAT_00088e4c = 1" identifier = number_literal) ;) (expression_statement "DAT_00088e50 = DAT_00088e50 + 1;" (assignment_expression "DAT_00088e50 = DAT_00088e50 + 1" identifier = (binary_expression "DAT_00088e50 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (expression_statement "DAT_00088e50 = DAT_00088e50 + -1;" (assignment_expression "DAT_00088e50 = DAT_00088e50 + -1" identifier = (binary_expression "DAT_00088e50 + -1" identifier + number_literal)) ;) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }" else (compound_statement "{\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }" { (expression_statement "DAT_00088e50 = DAT_00088e50 + -1;" (assignment_expression "DAT_00088e50 = DAT_00088e50 + -1" identifier = (binary_expression "DAT_00088e50 + -1" identifier + number_literal)) ;) (if_statement "if (iVar6 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }))) (if_statement "if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }" if (parenthesized_expression "((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68))" ( (binary_expression "(((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)" (parenthesized_expression "(((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64))" ( (binary_expression "((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)" (parenthesized_expression "((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558]))" ( (binary_expression "(DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(DAT_00080558 < 0)" ( (binary_expression "DAT_00080558 < 0" identifier < number_literal) )) || (parenthesized_expression "(iVar13 == (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 == (&DAT_00089038)[DAT_00080558]" identifier == (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ))) )) && (parenthesized_expression "(local_44 == DAT_00088e64)" ( (binary_expression "local_44 == DAT_00088e64" identifier == identifier) ))) )) && (parenthesized_expression "(local_48 == DAT_00088e68)" ( (binary_expression "local_48 == DAT_00088e68" identifier == identifier) ))) )) (compound_statement "{\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }" { (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_44 = iVar6;" (assignment_expression "local_44 = iVar6" identifier = identifier) ;) (expression_statement "iStack_40 = iVar13;" (assignment_expression "iStack_40 = iVar13" identifier = identifier) ;) (expression_statement "local_48 = (int *)FUN_0003b610(iVar13);" (assignment_expression "local_48 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "puVar7 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(iVar13)" identifier = (cast_expression "(undefined *)FUN_00038ac0(iVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (if_statement "if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }" if (parenthesized_expression "(puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180" identifier == (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal)) )) (compound_statement "{\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }" { (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = *local_48;" (assignment_expression "*param_1 = *local_48" (pointer_expression "*param_1" * identifier) = (pointer_expression "*local_48" * identifier)) ;) (expression_statement "param_1[1] = local_48[1];" (assignment_expression "param_1[1] = local_48[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "local_48[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = local_48[2];" (assignment_expression "param_1[2] = local_48[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "local_48[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = local_48[3];" (assignment_expression "param_1[3] = local_48[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "local_48[3]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = local_48[4];" (assignment_expression "iVar8 = local_48[4]" identifier = (subscript_expression "local_48[4]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (uint *)(param_1 + 2);" (assignment_expression "puVar1 = (uint *)(param_1 + 2)" identifier = (cast_expression "(uint *)(param_1 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + uVar2;" (assignment_expression "*puVar1 = *puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) + identifier)) ;) (expression_statement "param_1[4] = iVar8;" (assignment_expression "param_1[4] = iVar8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);" (assignment_expression "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (binary_expression "param_1[3] + iVar13" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier) + (cast_expression "(uint)CARRY4(uVar5,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar2)" identifier (argument_list "(uVar5,uVar2)" ( identifier , identifier )))))) ;) (return_statement "return local_44;" return identifier ;) })) (if_statement "if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }" if (parenthesized_expression "((char)local_48[4] == '\x03')" ( (binary_expression "(char)local_48[4] == '\x03'" (cast_expression "(char)local_48[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_48[4]" identifier [ number_literal ])) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }" { (expression_statement "uVar15 = auStack_4c < (undefined1 *)0xc;" (assignment_expression "uVar15 = auStack_4c < (undefined1 *)0xc" identifier = (binary_expression "auStack_4c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x58" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x58" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar12 = (byte *)FUN_00038a80(*local_48);" (assignment_expression "pbVar12 = (byte *)FUN_00038a80(*local_48)" identifier = (cast_expression "(byte *)FUN_00038a80(*local_48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038a80(*local_48)" identifier (argument_list "(*local_48)" ( (pointer_expression "*local_48" * identifier) ))))) ;) (expression_statement "iVar13 = 0x16;" (assignment_expression "iVar13 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_"" identifier = (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content "))) ;) (do_statement "do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);" do (compound_statement "{\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar12 < *pbVar14;" (assignment_expression "uVar15 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar17 = *pbVar12 == *pbVar14;" (assignment_expression "uVar17 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }" if (parenthesized_expression "((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15)" ( (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n            iStack_40 = *local_48;\n          }" { (expression_statement "iStack_40 = *local_48;" (assignment_expression "iStack_40 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) })) })) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 3" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_1 = iStack_40;" (assignment_expression "*param_1 = iStack_40" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return local_44;" return identifier ;) })) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) })) })) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }" { (labeled_statement "LAB_00049e58:\n    FUN_0003b610(iVar8);" statement_identifier : (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;)) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (expression_statement "bVar4 = *(byte *)(param_1 + 4);" (assignment_expression "bVar4 = *(byte *)(param_1 + 4)" identifier = (pointer_expression "*(byte *)(param_1 + 4)" * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }" else (compound_statement "{\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }" { (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar4 = *(byte *)(param_1 + 4);" (assignment_expression "bVar4 = *(byte *)(param_1 + 4)" identifier = (pointer_expression "*(byte *)(param_1 + 4)" * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }))) })) (if_statement "if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }" if (parenthesized_expression "((byte)(bVar4 - 0x13) < 2)" ( (binary_expression "(byte)(bVar4 - 0x13) < 2" (call_expression "(byte)(bVar4 - 0x13)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 0x13)" ( (binary_expression "bVar4 - 0x13" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }" { (expression_statement "local_44 = DAT_00088e64;" (assignment_expression "local_44 = DAT_00088e64" identifier = identifier) ;) (expression_statement "local_48 = DAT_00088e68;" (assignment_expression "local_48 = DAT_00088e68" identifier = identifier) ;) (if_statement "if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" if (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) (compound_statement "{\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" { (if_statement "if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;" if (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (goto_statement "goto LAB_0004a47d;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }" else (compound_statement "{\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }" { (if_statement "if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }" if (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) (compound_statement "{\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }" { (labeled_statement "LAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;" statement_identifier : (if_statement "if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;" if (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;))) })) (if_statement "if (local_44 != DAT_00088e64) goto LAB_0004a3f0;" if (parenthesized_expression "(local_44 != DAT_00088e64)" ( (binary_expression "local_44 != DAT_00088e64" identifier != identifier) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (labeled_statement "LAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;" statement_identifier : (if_statement "if (local_48 != DAT_00088e68) goto LAB_0004a3f0;" if (parenthesized_expression "(local_48 != DAT_00088e68)" ( (binary_expression "local_48 != DAT_00088e68" identifier != identifier) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;))) }))) (expression_statement "iVar8 = param_1[1];" (assignment_expression "iVar8 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) }) (else_clause "else if (iVar6 == 0) {\n      return 0;\n    }" else (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })))) })) (if_statement "if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;" if (parenthesized_expression "((char)param_1[4] == '\x13')" ( (binary_expression "(char)param_1[4] == '\x13'" (cast_expression "(char)param_1[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) == (char_literal "'\x13'" ' escape_sequence ')) )) (compound_statement "{\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }" { (expression_statement "local_48 = DAT_00088e68;" (assignment_expression "local_48 = DAT_00088e68" identifier = identifier) ;) (if_statement "if (DAT_00080558 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(DAT_00080558 < 0)" ( (binary_expression "DAT_00080558 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;" if (parenthesized_expression "((&DAT_00089038)[DAT_00080558] != iVar13)" ( (binary_expression "(&DAT_00089038)[DAT_00080558] != iVar13" (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ]) != identifier) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) }) (else_clause "else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;" else (if_statement "if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;" if (parenthesized_expression "(((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64))" ( (binary_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)" (parenthesized_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558]))" ( (binary_expression "(-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) && (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ))) )) || (parenthesized_expression "(local_44 != DAT_00088e64)" ( (binary_expression "local_44 != DAT_00088e64" identifier != identifier) ))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)))) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" identifier = identifier) ;) (if_statement "if (local_48 != DAT_00088e68) goto LAB_0004a3f0;" if (parenthesized_expression "(local_48 != DAT_00088e68)" ( (binary_expression "local_48 != DAT_00088e68" identifier != identifier) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (goto_statement "goto code_r0x00049f18;" goto statement_identifier ;) (labeled_statement "code_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }" statement_identifier : (if_statement "if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }" if (parenthesized_expression "(DAT_00088e40 == 1)" ( (binary_expression "DAT_00088e40 == 1" identifier == number_literal) )) (compound_statement "{\n    DAT_00088e40 = uVar5;\n  }" { (expression_statement "DAT_00088e40 = uVar5;" (assignment_expression "DAT_00088e40 = uVar5" identifier = identifier) ;) }))) (labeled_statement "code_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);" statement_identifier : (expression_statement "iVar13 = FUN_0003b610(*param_1);" (assignment_expression "iVar13 = FUN_0003b610(*param_1)" identifier = (call_expression "FUN_0003b610(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;)) (if_statement "if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }" if (parenthesized_expression "(*(char *)(iVar13 + 0x10) == '\x05')" ( (binary_expression "*(char *)(iVar13 + 0x10) == '\x05'" (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }" { (labeled_statement "LAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,"invalid use of register",5);" (assignment_expression "uVar9 = dcgettext(0,"invalid use of register",5)" identifier = (call_expression "dcgettext(0,"invalid use of register",5)" identifier (argument_list "(0,"invalid use of register",5)" ( number_literal , (string_literal ""invalid use of register"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar9);" (call_expression "FUN_0002bd60(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "iVar8 = FUN_00049de0();" (assignment_expression "iVar8 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar7 = PTR__bfd_std_section_0007ffb0;" (assignment_expression "puVar7 = PTR__bfd_std_section_0007ffb0" identifier = identifier) ;) (if_statement "if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }" { (expression_statement "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) }) (else_clause "else if (iVar8 == 0) {\n    return 0;\n  }" else (if_statement "if (iVar8 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })))) (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_44 = iVar13;" (assignment_expression "local_44 = iVar13" identifier = identifier) ;) (expression_statement "local_48 = (int *)FUN_0003b610(iVar13);" (assignment_expression "local_48 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "puVar10 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar10 = (undefined *)FUN_00038ac0(iVar13)" identifier = (cast_expression "(undefined *)FUN_00038ac0(iVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (if_statement "if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }" if (parenthesized_expression "(puVar10 != puVar7 + 0x180)" ( (binary_expression "puVar10 != puVar7 + 0x180" identifier != (binary_expression "puVar7 + 0x180" identifier + number_literal)) )) (compound_statement "{\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }" { (labeled_statement "code_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }" statement_identifier : (if_statement "if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }" if (parenthesized_expression "((char)local_48[4] == '\x03')" ( (binary_expression "(char)local_48[4] == '\x03'" (cast_expression "(char)local_48[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_48[4]" identifier [ number_literal ])) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }" { (expression_statement "uVar15 = auStack_4c < (undefined1 *)0xc;" (assignment_expression "uVar15 = auStack_4c < (undefined1 *)0xc" identifier = (binary_expression "auStack_4c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x58" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x58" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar12 = (byte *)FUN_00038a80(*local_48);" (assignment_expression "pbVar12 = (byte *)FUN_00038a80(*local_48)" identifier = (cast_expression "(byte *)FUN_00038a80(*local_48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038a80(*local_48)" identifier (argument_list "(*local_48)" ( (pointer_expression "*local_48" * identifier) ))))) ;) (expression_statement "iVar13 = 0x16;" (assignment_expression "iVar13 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_"" identifier = (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content "))) ;) (do_statement "do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar12 < *pbVar14;" (assignment_expression "uVar15 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar17 = *pbVar12 == *pbVar14;" (assignment_expression "uVar17 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }" if (parenthesized_expression "((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15)" ( (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        local_44 = *local_48;\n      }" { (expression_statement "local_44 = *local_48;" (assignment_expression "local_44 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) })) }))) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 3" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_1 = local_44;" (assignment_expression "*param_1 = local_44" (pointer_expression "*param_1" * identifier) = identifier) ;) (labeled_statement "code_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (DAT_00080558 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(DAT_00080558 < 0)" ( (binary_expression "DAT_00080558 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (goto_statement "goto code_r0x00049f28;" goto statement_identifier ;) })) (labeled_statement "code_r0x0004a4cf:\n  uVar2 = param_1[2];" statement_identifier : (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;)) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = *local_48;" (assignment_expression "*param_1 = *local_48" (pointer_expression "*param_1" * identifier) = (pointer_expression "*local_48" * identifier)) ;) (expression_statement "param_1[1] = local_48[1];" (assignment_expression "param_1[1] = local_48[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "local_48[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = local_48[2];" (assignment_expression "param_1[2] = local_48[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "local_48[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = local_48[3];" (assignment_expression "param_1[3] = local_48[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "local_48[3]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = local_48[4];" (assignment_expression "iVar8 = local_48[4]" identifier = (subscript_expression "local_48[4]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (uint *)(param_1 + 2);" (assignment_expression "puVar1 = (uint *)(param_1 + 2)" identifier = (cast_expression "(uint *)(param_1 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + uVar2;" (assignment_expression "*puVar1 = *puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) + identifier)) ;) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" identifier = identifier) ;) (expression_statement "param_1[4] = iVar8;" (assignment_expression "param_1[4] = iVar8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);" (assignment_expression "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (binary_expression "param_1[3] + iVar13" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier) + (cast_expression "(uint)CARRY4(uVar5,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar2)" identifier (argument_list "(uVar5,uVar2)" ( identifier , identifier )))))) ;) (labeled_statement "code_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }" statement_identifier : (if_statement "if (iVar6 < 0) {\n    return 1;\n  }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) }))) (if_statement "if ((char)param_1[4] != '\x03') {\n    return 1;\n  }" if (parenthesized_expression "((char)param_1[4] != '\x03')" ( (binary_expression "(char)param_1[4] != '\x03'" (cast_expression "(char)param_1[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "code_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }" statement_identifier : (if_statement "if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }" if (parenthesized_expression "((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7))" ( (binary_expression "(((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)" (parenthesized_expression "(((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7))" ( (binary_expression "((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)" (parenthesized_expression "((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180))" ( (binary_expression "(DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)" ( (comma_expression "puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(*param_1)" identifier = (cast_expression "(undefined *)FUN_00038ac0(*param_1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))))) , (binary_expression "puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180" identifier != (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal))) ))) )) && (parenthesized_expression "(DAT_000897ec != puVar7)" ( (binary_expression "DAT_000897ec != puVar7" identifier != identifier) ))) )) && (parenthesized_expression "(DAT_00089720 != puVar7)" ( (binary_expression "DAT_00089720 != puVar7" identifier != identifier) ))) )) (compound_statement "{\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }" { (expression_statement "DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;" (assignment_expression "DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1" identifier = (binary_expression "DAT_00088e44 | (DAT_00088e54 != 0) + 1" identifier | (binary_expression "(DAT_00088e54 != 0) + 1" (parenthesized_expression "(DAT_00088e54 != 0)" ( (binary_expression "DAT_00088e54 != 0" identifier != number_literal) )) + number_literal))) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nint __regparm3 i386_intel_simplify(expressionS *e)\n\n{\n  offsetT *poVar1;\n  int *piVar2;\n  ulonglong uVar3;\n  undefined2 uVar4;\n  ushort uVar5;\n  offsetT oVar6;\n  undefined *puVar7;\n  byte bVar8;\n  expressionS *peVar9;\n  int iVar10;\n  segT paVar11;\n  symbolS *psVar12;\n  char *pcVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  expressionS *peVar17;\n  byte *pbVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  byte bVar22;\n  undefined1 auStack_4c [4];\n  expressionS *local_48;\n  symbolS *local_44;\n  symbolS *local_40;\n  expressionS exp;\n  \n  bVar22 = 0;\n  peVar17 = (expressionS *)0x0;\n  if (-1 < this_operand) {\n    peVar17 = i.op[this_operand].disps;\n  }\n  if (intel_syntax == 0) {\n    return 1;\n  }\n  local_44 = (symbolS *)intel_state.base;\n  local_48 = (expressionS *)intel_state.index;\n  bVar8 = e->field_0x10;\n  switch((uint)bVar8) {\n  default:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\nLAB_00049e84:\n    if (1 < (byte)(bVar8 - 0x13)) {\n      if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }\n      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    local_44 = (symbolS *)intel_state.base;\n    local_48 = (expressionS *)intel_state.index;\n    if (-1 < this_operand) {\n      if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    break;\n  case 2:\n    if (e->X_md != 0) {\n      iVar10 = i386_intel_simplify_register(e);\n      return iVar10;\n    }\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\n    if (-1 < this_operand) goto LAB_0004a3ce;\nLAB_0004a47d:\n    if (local_48 != (expressionS *)intel_state.index) goto LAB_0004a3f0;\n    break;\n  case 5:\n    iVar10 = i386_intel_simplify_register(e);\n    if (iVar10 != 2) {\n      return iVar10;\n    }\n    uVar14 = (uint)e->X_add_number;\n    if (-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");\n    }\n    e->field_0x10 = 2;\n    e->X_md = (short)uVar14 + 1;\n    *(undefined4 *)&e->X_add_number = 0;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 2;\n  case 10:\n    if (this_operand < 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;\nLAB_00049e58:\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }\n      else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }\n      goto LAB_00049e84;\n    }\n    if (intel_state.in_bracket == 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;\n      goto LAB_00049e58;\n    }\n    if (intel_state.in_scale == 0) {\n      intel_state.scale_factor._0_4_ = 1;\n      intel_state.scale_factor._4_4_ = 0;\n    }\n    psVar12 = e->X_add_symbol;\n    intel_state.in_scale = intel_state.in_scale + 1;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (local_48 != (expressionS *)0x0) goto LAB_0004a795;\nLAB_0004a136:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)intel_state.index;\n      if (intel_state.index != (reg_entry *)0x0) {\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }\n    }\n    else {\n      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;\n      if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }\nLAB_0004a795:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)0x0;\n    }\n    local_44 = psVar12;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      iVar16 = 1;\n    }\n    else {\n      bVar20 = (bool)(bVar20 & iVar10 != 0);\n      iVar16 = iVar10;\n    }\n    if (bVar20) {\n      if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n      else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n    }\n    else {\n      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;\n      intel_state.in_scale = intel_state.in_scale - 1;\n      if (iVar16 == 0) {\n        return 0;\n      }\n    }\n    iVar16 = this_operand;\n    if (intel_state.in_scale == 0) {\n      if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {\n        i.log2_scale_factor = 1;\n      }\n      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }\n    }\n    goto LAB_00049f18;\n  case 0x1d:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) {\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }\n      else if (iVar10 == 0) {\n        return 0;\n      }\n      if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    }\n    if (intel_state.in_offset == 0) {\n      intel_state.in_bracket = intel_state.in_bracket + 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n    }\n    else {\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if (e->X_add_symbol != (symbolS *)0x0) {\n      e->field_0x10 = 0x13;\n      return 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = peVar17->X_add_symbol;\n      e->X_op_symbol = peVar17->X_op_symbol;\n      *(int *)&e->X_add_number = (int)peVar17->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);\n      uVar4 = *(undefined2 *)&peVar17->field_0x10;\n      uVar5 = peVar17->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      iVar16 = this_operand;\n      goto LAB_00049f18;\n    }\n    if (peVar17->field_0x10 == '\x03') {\n      pcVar13 = S_GET_NAME(peVar17->X_add_symbol);\n      iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");\n      if (iVar10 == 0) {\n        psVar12 = peVar17->X_add_symbol;\n      }\n    }\n    e->X_add_symbol = psVar12;\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    goto LAB_0004a395;\n  case 0x1f:\n    peVar9 = symbol_get_value_expression(e->X_op_symbol);\n    if (peVar9->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_op_symbol;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    psVar12 = intel_state.seg;\n    if (intel_state.in_offset == 0) {\n      psVar12 = e->X_add_symbol;\n      if (intel_state.seg != (symbolS *)0x0) {\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }\n    }\n    intel_state.seg = psVar12;\n    psVar12 = e->X_op_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) goto LAB_0004a4cf;\n    goto LAB_0004a379;\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    if (intel_state.op_modifier == O_absent) {\n      intel_state.op_modifier = (uint)bVar8;\n    }\n  case 0x3c:\n    peVar17 = symbol_get_value_expression(e->X_add_symbol);\n    if (peVar17->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_add_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    puVar7 = PTR__bfd_std_section_0007ffb0;\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    psVar12 = e->X_add_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(puVar7 + 0x180)) {\nLAB_0004a4cf:\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = local_48->X_add_symbol;\n      e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];\n      *(int *)&e->X_add_number = (int)local_48->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)\n      ;\n      uVar4 = *(undefined2 *)&local_48->field_0x10;\n      uVar5 = local_48->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      iVar16 = this_operand;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      goto LAB_00049f18;\n    }\nLAB_0004a379:\n    if (local_48->field_0x10 == '\x03') {\n      uVar19 = auStack_4c < (undefined1 *)0xc;\n      uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n      iVar10 = 0x16;\n      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }\n    }\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    e->X_add_symbol = local_44;\nLAB_0004a395:\n    if (this_operand < 0) {\n      return 1;\n    }\n    goto LAB_00049f28;\n  case 0x3d:\n    psVar12 = e->X_add_symbol;\n    intel_state.has_offset = 1;\n    intel_state.in_offset = intel_state.in_offset + 1;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      intel_state.in_offset = intel_state.in_offset - 1;\n      iVar10 = 1;\n    }\n    else {\n      intel_state.in_offset = intel_state.in_offset - 1;\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if ((((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)\n       ) {\n      psVar12 = e->X_add_symbol;\n      local_44 = (symbolS *)iVar10;\n      local_40 = psVar12;\n      local_48 = symbol_get_value_expression(psVar12);\n      paVar11 = S_GET_SEGMENT(psVar12);\n      if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }\n      if (local_48->field_0x10 == '\x03') {\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }\n      e->X_op_symbol = (symbolS *)0x0;\n      e->field_0x10 = 3;\n      e->X_add_symbol = local_40;\n      return (int)local_44;\n    }\n    goto LAB_0004a3f0;\n  }\n  psVar12 = e->X_op_symbol;\n  if (psVar12 != (symbolS *)0x0) {\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n  }\n  if (e->field_0x10 == '\x13') {\n    local_48 = (expressionS *)intel_state.index;\n    if (this_operand < 0) {\n      return 1;\n    }\n    if (i.op[this_operand].disps != peVar17) goto LAB_0004a3f0;\n  }\n  else if (((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) ||\n          (local_44 != (symbolS *)intel_state.base)) goto LAB_0004a3f0;\n  iVar16 = this_operand;\n  if (local_48 == (expressionS *)intel_state.index) {\nLAB_00049f18:\n    if ((-1 < iVar16) && (e->field_0x10 == '\x03')) {\nLAB_00049f28:\n      if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }\n    }\n    return 1;\n  }\nLAB_0004a3f0:\n  pcVar13 = (char *)dcgettext(0,"invalid use of register",5);\n  as_bad(pcVar13);\n  return 0;\n}\n\n" comment comment (function_definition "int __regparm3 i386_intel_simplify(expressionS *e)\n\n{\n  offsetT *poVar1;\n  int *piVar2;\n  ulonglong uVar3;\n  undefined2 uVar4;\n  ushort uVar5;\n  offsetT oVar6;\n  undefined *puVar7;\n  byte bVar8;\n  expressionS *peVar9;\n  int iVar10;\n  segT paVar11;\n  symbolS *psVar12;\n  char *pcVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  expressionS *peVar17;\n  byte *pbVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  byte bVar22;\n  undefined1 auStack_4c [4];\n  expressionS *local_48;\n  symbolS *local_44;\n  symbolS *local_40;\n  expressionS exp;\n  \n  bVar22 = 0;\n  peVar17 = (expressionS *)0x0;\n  if (-1 < this_operand) {\n    peVar17 = i.op[this_operand].disps;\n  }\n  if (intel_syntax == 0) {\n    return 1;\n  }\n  local_44 = (symbolS *)intel_state.base;\n  local_48 = (expressionS *)intel_state.index;\n  bVar8 = e->field_0x10;\n  switch((uint)bVar8) {\n  default:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\nLAB_00049e84:\n    if (1 < (byte)(bVar8 - 0x13)) {\n      if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }\n      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    local_44 = (symbolS *)intel_state.base;\n    local_48 = (expressionS *)intel_state.index;\n    if (-1 < this_operand) {\n      if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    break;\n  case 2:\n    if (e->X_md != 0) {\n      iVar10 = i386_intel_simplify_register(e);\n      return iVar10;\n    }\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\n    if (-1 < this_operand) goto LAB_0004a3ce;\nLAB_0004a47d:\n    if (local_48 != (expressionS *)intel_state.index) goto LAB_0004a3f0;\n    break;\n  case 5:\n    iVar10 = i386_intel_simplify_register(e);\n    if (iVar10 != 2) {\n      return iVar10;\n    }\n    uVar14 = (uint)e->X_add_number;\n    if (-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");\n    }\n    e->field_0x10 = 2;\n    e->X_md = (short)uVar14 + 1;\n    *(undefined4 *)&e->X_add_number = 0;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 2;\n  case 10:\n    if (this_operand < 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;\nLAB_00049e58:\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }\n      else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }\n      goto LAB_00049e84;\n    }\n    if (intel_state.in_bracket == 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;\n      goto LAB_00049e58;\n    }\n    if (intel_state.in_scale == 0) {\n      intel_state.scale_factor._0_4_ = 1;\n      intel_state.scale_factor._4_4_ = 0;\n    }\n    psVar12 = e->X_add_symbol;\n    intel_state.in_scale = intel_state.in_scale + 1;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (local_48 != (expressionS *)0x0) goto LAB_0004a795;\nLAB_0004a136:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)intel_state.index;\n      if (intel_state.index != (reg_entry *)0x0) {\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }\n    }\n    else {\n      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;\n      if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }\nLAB_0004a795:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)0x0;\n    }\n    local_44 = psVar12;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      iVar16 = 1;\n    }\n    else {\n      bVar20 = (bool)(bVar20 & iVar10 != 0);\n      iVar16 = iVar10;\n    }\n    if (bVar20) {\n      if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n      else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n    }\n    else {\n      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;\n      intel_state.in_scale = intel_state.in_scale - 1;\n      if (iVar16 == 0) {\n        return 0;\n      }\n    }\n    iVar16 = this_operand;\n    if (intel_state.in_scale == 0) {\n      if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {\n        i.log2_scale_factor = 1;\n      }\n      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }\n    }\n    goto LAB_00049f18;\n  case 0x1d:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) {\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }\n      else if (iVar10 == 0) {\n        return 0;\n      }\n      if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    }\n    if (intel_state.in_offset == 0) {\n      intel_state.in_bracket = intel_state.in_bracket + 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n    }\n    else {\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if (e->X_add_symbol != (symbolS *)0x0) {\n      e->field_0x10 = 0x13;\n      return 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = peVar17->X_add_symbol;\n      e->X_op_symbol = peVar17->X_op_symbol;\n      *(int *)&e->X_add_number = (int)peVar17->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);\n      uVar4 = *(undefined2 *)&peVar17->field_0x10;\n      uVar5 = peVar17->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      iVar16 = this_operand;\n      goto LAB_00049f18;\n    }\n    if (peVar17->field_0x10 == '\x03') {\n      pcVar13 = S_GET_NAME(peVar17->X_add_symbol);\n      iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");\n      if (iVar10 == 0) {\n        psVar12 = peVar17->X_add_symbol;\n      }\n    }\n    e->X_add_symbol = psVar12;\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    goto LAB_0004a395;\n  case 0x1f:\n    peVar9 = symbol_get_value_expression(e->X_op_symbol);\n    if (peVar9->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_op_symbol;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    psVar12 = intel_state.seg;\n    if (intel_state.in_offset == 0) {\n      psVar12 = e->X_add_symbol;\n      if (intel_state.seg != (symbolS *)0x0) {\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }\n    }\n    intel_state.seg = psVar12;\n    psVar12 = e->X_op_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) goto LAB_0004a4cf;\n    goto LAB_0004a379;\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    if (intel_state.op_modifier == O_absent) {\n      intel_state.op_modifier = (uint)bVar8;\n    }\n  case 0x3c:\n    peVar17 = symbol_get_value_expression(e->X_add_symbol);\n    if (peVar17->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_add_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    puVar7 = PTR__bfd_std_section_0007ffb0;\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    psVar12 = e->X_add_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(puVar7 + 0x180)) {\nLAB_0004a4cf:\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = local_48->X_add_symbol;\n      e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];\n      *(int *)&e->X_add_number = (int)local_48->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)\n      ;\n      uVar4 = *(undefined2 *)&local_48->field_0x10;\n      uVar5 = local_48->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      iVar16 = this_operand;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      goto LAB_00049f18;\n    }\nLAB_0004a379:\n    if (local_48->field_0x10 == '\x03') {\n      uVar19 = auStack_4c < (undefined1 *)0xc;\n      uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n      iVar10 = 0x16;\n      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }\n    }\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    e->X_add_symbol = local_44;\nLAB_0004a395:\n    if (this_operand < 0) {\n      return 1;\n    }\n    goto LAB_00049f28;\n  case 0x3d:\n    psVar12 = e->X_add_symbol;\n    intel_state.has_offset = 1;\n    intel_state.in_offset = intel_state.in_offset + 1;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      intel_state.in_offset = intel_state.in_offset - 1;\n      iVar10 = 1;\n    }\n    else {\n      intel_state.in_offset = intel_state.in_offset - 1;\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if ((((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)\n       ) {\n      psVar12 = e->X_add_symbol;\n      local_44 = (symbolS *)iVar10;\n      local_40 = psVar12;\n      local_48 = symbol_get_value_expression(psVar12);\n      paVar11 = S_GET_SEGMENT(psVar12);\n      if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }\n      if (local_48->field_0x10 == '\x03') {\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }\n      e->X_op_symbol = (symbolS *)0x0;\n      e->field_0x10 = 3;\n      e->X_add_symbol = local_40;\n      return (int)local_44;\n    }\n    goto LAB_0004a3f0;\n  }\n  psVar12 = e->X_op_symbol;\n  if (psVar12 != (symbolS *)0x0) {\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n  }\n  if (e->field_0x10 == '\x13') {\n    local_48 = (expressionS *)intel_state.index;\n    if (this_operand < 0) {\n      return 1;\n    }\n    if (i.op[this_operand].disps != peVar17) goto LAB_0004a3f0;\n  }\n  else if (((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) ||\n          (local_44 != (symbolS *)intel_state.base)) goto LAB_0004a3f0;\n  iVar16 = this_operand;\n  if (local_48 == (expressionS *)intel_state.index) {\nLAB_00049f18:\n    if ((-1 < iVar16) && (e->field_0x10 == '\x03')) {\nLAB_00049f28:\n      if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }\n    }\n    return 1;\n  }\nLAB_0004a3f0:\n  pcVar13 = (char *)dcgettext(0,"invalid use of register",5);\n  as_bad(pcVar13);\n  return 0;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "i386_intel_simplify(expressionS *e)" identifier (parameter_list "(expressionS *e)" ( (parameter_declaration "expressionS *e" type_identifier (pointer_declarator "*e" * identifier)) ))) (compound_statement "{\n  offsetT *poVar1;\n  int *piVar2;\n  ulonglong uVar3;\n  undefined2 uVar4;\n  ushort uVar5;\n  offsetT oVar6;\n  undefined *puVar7;\n  byte bVar8;\n  expressionS *peVar9;\n  int iVar10;\n  segT paVar11;\n  symbolS *psVar12;\n  char *pcVar13;\n  uint uVar14;\n  byte *pbVar15;\n  int iVar16;\n  expressionS *peVar17;\n  byte *pbVar18;\n  undefined1 uVar19;\n  bool bVar20;\n  undefined1 uVar21;\n  byte bVar22;\n  undefined1 auStack_4c [4];\n  expressionS *local_48;\n  symbolS *local_44;\n  symbolS *local_40;\n  expressionS exp;\n  \n  bVar22 = 0;\n  peVar17 = (expressionS *)0x0;\n  if (-1 < this_operand) {\n    peVar17 = i.op[this_operand].disps;\n  }\n  if (intel_syntax == 0) {\n    return 1;\n  }\n  local_44 = (symbolS *)intel_state.base;\n  local_48 = (expressionS *)intel_state.index;\n  bVar8 = e->field_0x10;\n  switch((uint)bVar8) {\n  default:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\nLAB_00049e84:\n    if (1 < (byte)(bVar8 - 0x13)) {\n      if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }\n      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    local_44 = (symbolS *)intel_state.base;\n    local_48 = (expressionS *)intel_state.index;\n    if (-1 < this_operand) {\n      if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    break;\n  case 2:\n    if (e->X_md != 0) {\n      iVar10 = i386_intel_simplify_register(e);\n      return iVar10;\n    }\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\n    if (-1 < this_operand) goto LAB_0004a3ce;\nLAB_0004a47d:\n    if (local_48 != (expressionS *)intel_state.index) goto LAB_0004a3f0;\n    break;\n  case 5:\n    iVar10 = i386_intel_simplify_register(e);\n    if (iVar10 != 2) {\n      return iVar10;\n    }\n    uVar14 = (uint)e->X_add_number;\n    if (-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");\n    }\n    e->field_0x10 = 2;\n    e->X_md = (short)uVar14 + 1;\n    *(undefined4 *)&e->X_add_number = 0;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 2;\n  case 10:\n    if (this_operand < 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;\nLAB_00049e58:\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }\n      else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }\n      goto LAB_00049e84;\n    }\n    if (intel_state.in_bracket == 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;\n      goto LAB_00049e58;\n    }\n    if (intel_state.in_scale == 0) {\n      intel_state.scale_factor._0_4_ = 1;\n      intel_state.scale_factor._4_4_ = 0;\n    }\n    psVar12 = e->X_add_symbol;\n    intel_state.in_scale = intel_state.in_scale + 1;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (local_48 != (expressionS *)0x0) goto LAB_0004a795;\nLAB_0004a136:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)intel_state.index;\n      if (intel_state.index != (reg_entry *)0x0) {\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }\n    }\n    else {\n      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;\n      if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }\nLAB_0004a795:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)0x0;\n    }\n    local_44 = psVar12;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      iVar16 = 1;\n    }\n    else {\n      bVar20 = (bool)(bVar20 & iVar10 != 0);\n      iVar16 = iVar10;\n    }\n    if (bVar20) {\n      if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n      else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n    }\n    else {\n      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;\n      intel_state.in_scale = intel_state.in_scale - 1;\n      if (iVar16 == 0) {\n        return 0;\n      }\n    }\n    iVar16 = this_operand;\n    if (intel_state.in_scale == 0) {\n      if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {\n        i.log2_scale_factor = 1;\n      }\n      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }\n    }\n    goto LAB_00049f18;\n  case 0x1d:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) {\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }\n      else if (iVar10 == 0) {\n        return 0;\n      }\n      if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    }\n    if (intel_state.in_offset == 0) {\n      intel_state.in_bracket = intel_state.in_bracket + 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n    }\n    else {\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if (e->X_add_symbol != (symbolS *)0x0) {\n      e->field_0x10 = 0x13;\n      return 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = peVar17->X_add_symbol;\n      e->X_op_symbol = peVar17->X_op_symbol;\n      *(int *)&e->X_add_number = (int)peVar17->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);\n      uVar4 = *(undefined2 *)&peVar17->field_0x10;\n      uVar5 = peVar17->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      iVar16 = this_operand;\n      goto LAB_00049f18;\n    }\n    if (peVar17->field_0x10 == '\x03') {\n      pcVar13 = S_GET_NAME(peVar17->X_add_symbol);\n      iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");\n      if (iVar10 == 0) {\n        psVar12 = peVar17->X_add_symbol;\n      }\n    }\n    e->X_add_symbol = psVar12;\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    goto LAB_0004a395;\n  case 0x1f:\n    peVar9 = symbol_get_value_expression(e->X_op_symbol);\n    if (peVar9->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_op_symbol;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    psVar12 = intel_state.seg;\n    if (intel_state.in_offset == 0) {\n      psVar12 = e->X_add_symbol;\n      if (intel_state.seg != (symbolS *)0x0) {\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }\n    }\n    intel_state.seg = psVar12;\n    psVar12 = e->X_op_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) goto LAB_0004a4cf;\n    goto LAB_0004a379;\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    if (intel_state.op_modifier == O_absent) {\n      intel_state.op_modifier = (uint)bVar8;\n    }\n  case 0x3c:\n    peVar17 = symbol_get_value_expression(e->X_add_symbol);\n    if (peVar17->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_add_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    puVar7 = PTR__bfd_std_section_0007ffb0;\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    psVar12 = e->X_add_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(puVar7 + 0x180)) {\nLAB_0004a4cf:\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = local_48->X_add_symbol;\n      e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];\n      *(int *)&e->X_add_number = (int)local_48->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)\n      ;\n      uVar4 = *(undefined2 *)&local_48->field_0x10;\n      uVar5 = local_48->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      iVar16 = this_operand;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      goto LAB_00049f18;\n    }\nLAB_0004a379:\n    if (local_48->field_0x10 == '\x03') {\n      uVar19 = auStack_4c < (undefined1 *)0xc;\n      uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n      iVar10 = 0x16;\n      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }\n    }\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    e->X_add_symbol = local_44;\nLAB_0004a395:\n    if (this_operand < 0) {\n      return 1;\n    }\n    goto LAB_00049f28;\n  case 0x3d:\n    psVar12 = e->X_add_symbol;\n    intel_state.has_offset = 1;\n    intel_state.in_offset = intel_state.in_offset + 1;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      intel_state.in_offset = intel_state.in_offset - 1;\n      iVar10 = 1;\n    }\n    else {\n      intel_state.in_offset = intel_state.in_offset - 1;\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if ((((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)\n       ) {\n      psVar12 = e->X_add_symbol;\n      local_44 = (symbolS *)iVar10;\n      local_40 = psVar12;\n      local_48 = symbol_get_value_expression(psVar12);\n      paVar11 = S_GET_SEGMENT(psVar12);\n      if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }\n      if (local_48->field_0x10 == '\x03') {\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }\n      e->X_op_symbol = (symbolS *)0x0;\n      e->field_0x10 = 3;\n      e->X_add_symbol = local_40;\n      return (int)local_44;\n    }\n    goto LAB_0004a3f0;\n  }\n  psVar12 = e->X_op_symbol;\n  if (psVar12 != (symbolS *)0x0) {\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n  }\n  if (e->field_0x10 == '\x13') {\n    local_48 = (expressionS *)intel_state.index;\n    if (this_operand < 0) {\n      return 1;\n    }\n    if (i.op[this_operand].disps != peVar17) goto LAB_0004a3f0;\n  }\n  else if (((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) ||\n          (local_44 != (symbolS *)intel_state.base)) goto LAB_0004a3f0;\n  iVar16 = this_operand;\n  if (local_48 == (expressionS *)intel_state.index) {\nLAB_00049f18:\n    if ((-1 < iVar16) && (e->field_0x10 == '\x03')) {\nLAB_00049f28:\n      if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }\n    }\n    return 1;\n  }\nLAB_0004a3f0:\n  pcVar13 = (char *)dcgettext(0,"invalid use of register",5);\n  as_bad(pcVar13);\n  return 0;\n}" { (declaration "offsetT *poVar1;" type_identifier (pointer_declarator "*poVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "ulonglong uVar3;" type_identifier identifier ;) (declaration "undefined2 uVar4;" type_identifier identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "offsetT oVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "expressionS *peVar9;" type_identifier (pointer_declarator "*peVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "segT paVar11;" type_identifier identifier ;) (declaration "symbolS *psVar12;" type_identifier (pointer_declarator "*psVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "expressionS *peVar17;" type_identifier (pointer_declarator "*peVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "undefined1 uVar21;" type_identifier identifier ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "undefined1 auStack_4c [4];" type_identifier (array_declarator "auStack_4c [4]" identifier [ number_literal ]) ;) (declaration "expressionS *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "symbolS *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "symbolS *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "expressionS exp;" type_identifier identifier ;) (expression_statement "bVar22 = 0;" (assignment_expression "bVar22 = 0" identifier = number_literal) ;) (expression_statement "peVar17 = (expressionS *)0x0;" (assignment_expression "peVar17 = (expressionS *)0x0" identifier = (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (-1 < this_operand) {\n    peVar17 = i.op[this_operand].disps;\n  }" if (parenthesized_expression "(-1 < this_operand)" ( (binary_expression "-1 < this_operand" number_literal < identifier) )) (compound_statement "{\n    peVar17 = i.op[this_operand].disps;\n  }" { (expression_statement "peVar17 = i.op[this_operand].disps;" (assignment_expression "peVar17 = i.op[this_operand].disps" identifier = (field_expression "i.op[this_operand].disps" (subscript_expression "i.op[this_operand]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier)) ;) })) (if_statement "if (intel_syntax == 0) {\n    return 1;\n  }" if (parenthesized_expression "(intel_syntax == 0)" ( (binary_expression "intel_syntax == 0" identifier == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_44 = (symbolS *)intel_state.base;" (assignment_expression "local_44 = (symbolS *)intel_state.base" identifier = (cast_expression "(symbolS *)intel_state.base" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.base" identifier . field_identifier))) ;) (expression_statement "local_48 = (expressionS *)intel_state.index;" (assignment_expression "local_48 = (expressionS *)intel_state.index" identifier = (cast_expression "(expressionS *)intel_state.index" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.index" identifier . field_identifier))) ;) (expression_statement "bVar8 = e->field_0x10;" (assignment_expression "bVar8 = e->field_0x10" identifier = (field_expression "e->field_0x10" identifier -> field_identifier)) ;) (switch_statement "switch((uint)bVar8) {\n  default:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\nLAB_00049e84:\n    if (1 < (byte)(bVar8 - 0x13)) {\n      if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }\n      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    local_44 = (symbolS *)intel_state.base;\n    local_48 = (expressionS *)intel_state.index;\n    if (-1 < this_operand) {\n      if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    break;\n  case 2:\n    if (e->X_md != 0) {\n      iVar10 = i386_intel_simplify_register(e);\n      return iVar10;\n    }\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\n    if (-1 < this_operand) goto LAB_0004a3ce;\nLAB_0004a47d:\n    if (local_48 != (expressionS *)intel_state.index) goto LAB_0004a3f0;\n    break;\n  case 5:\n    iVar10 = i386_intel_simplify_register(e);\n    if (iVar10 != 2) {\n      return iVar10;\n    }\n    uVar14 = (uint)e->X_add_number;\n    if (-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");\n    }\n    e->field_0x10 = 2;\n    e->X_md = (short)uVar14 + 1;\n    *(undefined4 *)&e->X_add_number = 0;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 2;\n  case 10:\n    if (this_operand < 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;\nLAB_00049e58:\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }\n      else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }\n      goto LAB_00049e84;\n    }\n    if (intel_state.in_bracket == 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;\n      goto LAB_00049e58;\n    }\n    if (intel_state.in_scale == 0) {\n      intel_state.scale_factor._0_4_ = 1;\n      intel_state.scale_factor._4_4_ = 0;\n    }\n    psVar12 = e->X_add_symbol;\n    intel_state.in_scale = intel_state.in_scale + 1;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (local_48 != (expressionS *)0x0) goto LAB_0004a795;\nLAB_0004a136:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)intel_state.index;\n      if (intel_state.index != (reg_entry *)0x0) {\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }\n    }\n    else {\n      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;\n      if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }\nLAB_0004a795:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)0x0;\n    }\n    local_44 = psVar12;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      iVar16 = 1;\n    }\n    else {\n      bVar20 = (bool)(bVar20 & iVar10 != 0);\n      iVar16 = iVar10;\n    }\n    if (bVar20) {\n      if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n      else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n    }\n    else {\n      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;\n      intel_state.in_scale = intel_state.in_scale - 1;\n      if (iVar16 == 0) {\n        return 0;\n      }\n    }\n    iVar16 = this_operand;\n    if (intel_state.in_scale == 0) {\n      if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {\n        i.log2_scale_factor = 1;\n      }\n      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }\n    }\n    goto LAB_00049f18;\n  case 0x1d:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) {\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }\n      else if (iVar10 == 0) {\n        return 0;\n      }\n      if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    }\n    if (intel_state.in_offset == 0) {\n      intel_state.in_bracket = intel_state.in_bracket + 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n    }\n    else {\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if (e->X_add_symbol != (symbolS *)0x0) {\n      e->field_0x10 = 0x13;\n      return 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = peVar17->X_add_symbol;\n      e->X_op_symbol = peVar17->X_op_symbol;\n      *(int *)&e->X_add_number = (int)peVar17->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);\n      uVar4 = *(undefined2 *)&peVar17->field_0x10;\n      uVar5 = peVar17->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      iVar16 = this_operand;\n      goto LAB_00049f18;\n    }\n    if (peVar17->field_0x10 == '\x03') {\n      pcVar13 = S_GET_NAME(peVar17->X_add_symbol);\n      iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");\n      if (iVar10 == 0) {\n        psVar12 = peVar17->X_add_symbol;\n      }\n    }\n    e->X_add_symbol = psVar12;\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    goto LAB_0004a395;\n  case 0x1f:\n    peVar9 = symbol_get_value_expression(e->X_op_symbol);\n    if (peVar9->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_op_symbol;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    psVar12 = intel_state.seg;\n    if (intel_state.in_offset == 0) {\n      psVar12 = e->X_add_symbol;\n      if (intel_state.seg != (symbolS *)0x0) {\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }\n    }\n    intel_state.seg = psVar12;\n    psVar12 = e->X_op_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) goto LAB_0004a4cf;\n    goto LAB_0004a379;\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    if (intel_state.op_modifier == O_absent) {\n      intel_state.op_modifier = (uint)bVar8;\n    }\n  case 0x3c:\n    peVar17 = symbol_get_value_expression(e->X_add_symbol);\n    if (peVar17->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_add_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    puVar7 = PTR__bfd_std_section_0007ffb0;\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    psVar12 = e->X_add_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(puVar7 + 0x180)) {\nLAB_0004a4cf:\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = local_48->X_add_symbol;\n      e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];\n      *(int *)&e->X_add_number = (int)local_48->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)\n      ;\n      uVar4 = *(undefined2 *)&local_48->field_0x10;\n      uVar5 = local_48->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      iVar16 = this_operand;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      goto LAB_00049f18;\n    }\nLAB_0004a379:\n    if (local_48->field_0x10 == '\x03') {\n      uVar19 = auStack_4c < (undefined1 *)0xc;\n      uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n      iVar10 = 0x16;\n      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }\n    }\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    e->X_add_symbol = local_44;\nLAB_0004a395:\n    if (this_operand < 0) {\n      return 1;\n    }\n    goto LAB_00049f28;\n  case 0x3d:\n    psVar12 = e->X_add_symbol;\n    intel_state.has_offset = 1;\n    intel_state.in_offset = intel_state.in_offset + 1;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      intel_state.in_offset = intel_state.in_offset - 1;\n      iVar10 = 1;\n    }\n    else {\n      intel_state.in_offset = intel_state.in_offset - 1;\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if ((((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)\n       ) {\n      psVar12 = e->X_add_symbol;\n      local_44 = (symbolS *)iVar10;\n      local_40 = psVar12;\n      local_48 = symbol_get_value_expression(psVar12);\n      paVar11 = S_GET_SEGMENT(psVar12);\n      if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }\n      if (local_48->field_0x10 == '\x03') {\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }\n      e->X_op_symbol = (symbolS *)0x0;\n      e->field_0x10 = 3;\n      e->X_add_symbol = local_40;\n      return (int)local_44;\n    }\n    goto LAB_0004a3f0;\n  }" switch (parenthesized_expression "((uint)bVar8)" ( (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier) )) (compound_statement "{\n  default:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\nLAB_00049e84:\n    if (1 < (byte)(bVar8 - 0x13)) {\n      if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }\n      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    local_44 = (symbolS *)intel_state.base;\n    local_48 = (expressionS *)intel_state.index;\n    if (-1 < this_operand) {\n      if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    break;\n  case 2:\n    if (e->X_md != 0) {\n      iVar10 = i386_intel_simplify_register(e);\n      return iVar10;\n    }\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\n    if (-1 < this_operand) goto LAB_0004a3ce;\nLAB_0004a47d:\n    if (local_48 != (expressionS *)intel_state.index) goto LAB_0004a3f0;\n    break;\n  case 5:\n    iVar10 = i386_intel_simplify_register(e);\n    if (iVar10 != 2) {\n      return iVar10;\n    }\n    uVar14 = (uint)e->X_add_number;\n    if (-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");\n    }\n    e->field_0x10 = 2;\n    e->X_md = (short)uVar14 + 1;\n    *(undefined4 *)&e->X_add_number = 0;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 2;\n  case 10:\n    if (this_operand < 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;\nLAB_00049e58:\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }\n      else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }\n      goto LAB_00049e84;\n    }\n    if (intel_state.in_bracket == 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;\n      goto LAB_00049e58;\n    }\n    if (intel_state.in_scale == 0) {\n      intel_state.scale_factor._0_4_ = 1;\n      intel_state.scale_factor._4_4_ = 0;\n    }\n    psVar12 = e->X_add_symbol;\n    intel_state.in_scale = intel_state.in_scale + 1;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (local_48 != (expressionS *)0x0) goto LAB_0004a795;\nLAB_0004a136:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)intel_state.index;\n      if (intel_state.index != (reg_entry *)0x0) {\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }\n    }\n    else {\n      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;\n      if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }\nLAB_0004a795:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)0x0;\n    }\n    local_44 = psVar12;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      iVar16 = 1;\n    }\n    else {\n      bVar20 = (bool)(bVar20 & iVar10 != 0);\n      iVar16 = iVar10;\n    }\n    if (bVar20) {\n      if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n      else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n    }\n    else {\n      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;\n      intel_state.in_scale = intel_state.in_scale - 1;\n      if (iVar16 == 0) {\n        return 0;\n      }\n    }\n    iVar16 = this_operand;\n    if (intel_state.in_scale == 0) {\n      if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {\n        i.log2_scale_factor = 1;\n      }\n      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }\n    }\n    goto LAB_00049f18;\n  case 0x1d:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) {\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }\n      else if (iVar10 == 0) {\n        return 0;\n      }\n      if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    }\n    if (intel_state.in_offset == 0) {\n      intel_state.in_bracket = intel_state.in_bracket + 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n    }\n    else {\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if (e->X_add_symbol != (symbolS *)0x0) {\n      e->field_0x10 = 0x13;\n      return 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = peVar17->X_add_symbol;\n      e->X_op_symbol = peVar17->X_op_symbol;\n      *(int *)&e->X_add_number = (int)peVar17->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);\n      uVar4 = *(undefined2 *)&peVar17->field_0x10;\n      uVar5 = peVar17->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      iVar16 = this_operand;\n      goto LAB_00049f18;\n    }\n    if (peVar17->field_0x10 == '\x03') {\n      pcVar13 = S_GET_NAME(peVar17->X_add_symbol);\n      iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");\n      if (iVar10 == 0) {\n        psVar12 = peVar17->X_add_symbol;\n      }\n    }\n    e->X_add_symbol = psVar12;\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    goto LAB_0004a395;\n  case 0x1f:\n    peVar9 = symbol_get_value_expression(e->X_op_symbol);\n    if (peVar9->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_op_symbol;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    psVar12 = intel_state.seg;\n    if (intel_state.in_offset == 0) {\n      psVar12 = e->X_add_symbol;\n      if (intel_state.seg != (symbolS *)0x0) {\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }\n    }\n    intel_state.seg = psVar12;\n    psVar12 = e->X_op_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) goto LAB_0004a4cf;\n    goto LAB_0004a379;\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n  case 0x3a:\n  case 0x3b:\n    if (intel_state.op_modifier == O_absent) {\n      intel_state.op_modifier = (uint)bVar8;\n    }\n  case 0x3c:\n    peVar17 = symbol_get_value_expression(e->X_add_symbol);\n    if (peVar17->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_add_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    puVar7 = PTR__bfd_std_section_0007ffb0;\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    psVar12 = e->X_add_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(puVar7 + 0x180)) {\nLAB_0004a4cf:\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = local_48->X_add_symbol;\n      e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];\n      *(int *)&e->X_add_number = (int)local_48->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)\n      ;\n      uVar4 = *(undefined2 *)&local_48->field_0x10;\n      uVar5 = local_48->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      iVar16 = this_operand;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      goto LAB_00049f18;\n    }\nLAB_0004a379:\n    if (local_48->field_0x10 == '\x03') {\n      uVar19 = auStack_4c < (undefined1 *)0xc;\n      uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n      iVar10 = 0x16;\n      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }\n    }\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    e->X_add_symbol = local_44;\nLAB_0004a395:\n    if (this_operand < 0) {\n      return 1;\n    }\n    goto LAB_00049f28;\n  case 0x3d:\n    psVar12 = e->X_add_symbol;\n    intel_state.has_offset = 1;\n    intel_state.in_offset = intel_state.in_offset + 1;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      intel_state.in_offset = intel_state.in_offset - 1;\n      iVar10 = 1;\n    }\n    else {\n      intel_state.in_offset = intel_state.in_offset - 1;\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if ((((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)\n       ) {\n      psVar12 = e->X_add_symbol;\n      local_44 = (symbolS *)iVar10;\n      local_40 = psVar12;\n      local_48 = symbol_get_value_expression(psVar12);\n      paVar11 = S_GET_SEGMENT(psVar12);\n      if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }\n      if (local_48->field_0x10 == '\x03') {\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }\n      e->X_op_symbol = (symbolS *)0x0;\n      e->field_0x10 = 3;\n      e->X_add_symbol = local_40;\n      return (int)local_44;\n    }\n    goto LAB_0004a3f0;\n  }" { (case_statement "default:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\nLAB_00049e84:\n    if (1 < (byte)(bVar8 - 0x13)) {\n      if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }\n      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    local_44 = (symbolS *)intel_state.base;\n    local_48 = (expressionS *)intel_state.index;\n    if (-1 < this_operand) {\n      if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n    break;" default : (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (if_statement "if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;" if (parenthesized_expression "(psVar12 != (symbolS *)0x0)" ( (binary_expression "psVar12 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00049e58;" goto statement_identifier ;)) (labeled_statement "LAB_00049e84:\n    if (1 < (byte)(bVar8 - 0x13)) {\n      if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }\n      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" statement_identifier : (if_statement "if (1 < (byte)(bVar8 - 0x13)) {\n      if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }\n      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" if (parenthesized_expression "(1 < (byte)(bVar8 - 0x13))" ( (binary_expression "1 < (byte)(bVar8 - 0x13)" number_literal < (call_expression "(byte)(bVar8 - 0x13)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar8 - 0x13)" ( (binary_expression "bVar8 - 0x13" identifier - number_literal) )))) )) (compound_statement "{\n      if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }\n      if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" { (if_statement "if (-1 < this_operand) {\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }" if (parenthesized_expression "(-1 < this_operand)" ( (binary_expression "-1 < this_operand" number_literal < identifier) )) (compound_statement "{\nLAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      }" { (labeled_statement "LAB_0004a3ce:\n        if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;" statement_identifier : (if_statement "if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;" if (parenthesized_expression "(peVar17 != i.op[this_operand].disps)" ( (binary_expression "peVar17 != i.op[this_operand].disps" identifier != (field_expression "i.op[this_operand].disps" (subscript_expression "i.op[this_operand]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier)) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;))) })) (if_statement "if (local_44 != (symbolS *)intel_state.base) goto LAB_0004a3f0;" if (parenthesized_expression "(local_44 != (symbolS *)intel_state.base)" ( (binary_expression "local_44 != (symbolS *)intel_state.base" identifier != (cast_expression "(symbolS *)intel_state.base" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.base" identifier . field_identifier))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (goto_statement "goto LAB_0004a47d;" goto statement_identifier ;) }))) (expression_statement "local_44 = (symbolS *)intel_state.base;" (assignment_expression "local_44 = (symbolS *)intel_state.base" identifier = (cast_expression "(symbolS *)intel_state.base" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.base" identifier . field_identifier))) ;) (expression_statement "local_48 = (expressionS *)intel_state.index;" (assignment_expression "local_48 = (expressionS *)intel_state.index" identifier = (cast_expression "(expressionS *)intel_state.index" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.index" identifier . field_identifier))) ;) (if_statement "if (-1 < this_operand) {\n      if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" if (parenthesized_expression "(-1 < this_operand)" ( (binary_expression "-1 < this_operand" number_literal < identifier) )) (compound_statement "{\n      if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" { (if_statement "if (peVar17 != i.op[this_operand].disps) goto LAB_0004a3f0;" if (parenthesized_expression "(peVar17 != i.op[this_operand].disps)" ( (binary_expression "peVar17 != i.op[this_operand].disps" identifier != (field_expression "i.op[this_operand].disps" (subscript_expression "i.op[this_operand]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier)) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (goto_statement "goto LAB_0004a47d;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 2:\n    if (e->X_md != 0) {\n      iVar10 = i386_intel_simplify_register(e);\n      return iVar10;\n    }\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;\n    if (-1 < this_operand) goto LAB_0004a3ce;\nLAB_0004a47d:\n    if (local_48 != (expressionS *)intel_state.index) goto LAB_0004a3f0;\n    break;" case number_literal : (if_statement "if (e->X_md != 0) {\n      iVar10 = i386_intel_simplify_register(e);\n      return iVar10;\n    }" if (parenthesized_expression "(e->X_md != 0)" ( (binary_expression "e->X_md != 0" (field_expression "e->X_md" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      iVar10 = i386_intel_simplify_register(e);\n      return iVar10;\n    }" { (expression_statement "iVar10 = i386_intel_simplify_register(e);" (assignment_expression "iVar10 = i386_intel_simplify_register(e)" identifier = (call_expression "i386_intel_simplify_register(e)" identifier (argument_list "(e)" ( identifier )))) ;) (return_statement "return iVar10;" return identifier ;) })) (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (if_statement "if (psVar12 != (symbolS *)0x0) goto LAB_00049e58;" if (parenthesized_expression "(psVar12 != (symbolS *)0x0)" ( (binary_expression "psVar12 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00049e58;" goto statement_identifier ;)) (if_statement "if (-1 < this_operand) goto LAB_0004a3ce;" if (parenthesized_expression "(-1 < this_operand)" ( (binary_expression "-1 < this_operand" number_literal < identifier) )) (goto_statement "goto LAB_0004a3ce;" goto statement_identifier ;)) (labeled_statement "LAB_0004a47d:\n    if (local_48 != (expressionS *)intel_state.index) goto LAB_0004a3f0;" statement_identifier : (if_statement "if (local_48 != (expressionS *)intel_state.index) goto LAB_0004a3f0;" if (parenthesized_expression "(local_48 != (expressionS *)intel_state.index)" ( (binary_expression "local_48 != (expressionS *)intel_state.index" identifier != (cast_expression "(expressionS *)intel_state.index" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.index" identifier . field_identifier))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;))) (break_statement "break;" break ;)) (case_statement "case 5:\n    iVar10 = i386_intel_simplify_register(e);\n    if (iVar10 != 2) {\n      return iVar10;\n    }\n    uVar14 = (uint)e->X_add_number;\n    if (-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");\n    }\n    e->field_0x10 = 2;\n    e->X_md = (short)uVar14 + 1;\n    *(undefined4 *)&e->X_add_number = 0;\n    *(undefined4 *)((int)&e->X_add_number + 4) = 0;\n    return 2;" case number_literal : (expression_statement "iVar10 = i386_intel_simplify_register(e);" (assignment_expression "iVar10 = i386_intel_simplify_register(e)" identifier = (call_expression "i386_intel_simplify_register(e)" identifier (argument_list "(e)" ( identifier )))) ;) (if_statement "if (iVar10 != 2) {\n      return iVar10;\n    }" if (parenthesized_expression "(iVar10 != 2)" ( (binary_expression "iVar10 != 2" identifier != number_literal) )) (compound_statement "{\n      return iVar10;\n    }" { (return_statement "return iVar10;" return identifier ;) })) (expression_statement "uVar14 = (uint)e->X_add_number;" (assignment_expression "uVar14 = (uint)e->X_add_number" identifier = (cast_expression "(uint)e->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e->X_add_number" identifier -> field_identifier))) ;) (if_statement "if (-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14)) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");\n    }" if (parenthesized_expression "(-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14))" ( (binary_expression "-*(int *)((int)&e->X_add_number + 4) < (int)(uint)(0xfffe < uVar14)" (unary_expression "-*(int *)((int)&e->X_add_number + 4)" - (pointer_expression "*(int *)((int)&e->X_add_number + 4)" * (cast_expression "(int *)((int)&e->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) ))))) < (cast_expression "(int)(uint)(0xfffe < uVar14)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0xfffe < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffe < uVar14)" ( (binary_expression "0xfffe < uVar14" number_literal < identifier) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");\n    }" { comment (expression_statement "as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");" (call_expression "as_abort("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify")" identifier (argument_list "("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify")" ( (string_literal ""../../gas/config/tc-i386-intel.c"" " string_content ") , number_literal , (string_literal ""i386_intel_simplify"" " string_content ") ))) ;) })) (expression_statement "e->field_0x10 = 2;" (assignment_expression "e->field_0x10 = 2" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "e->X_md = (short)uVar14 + 1;" (assignment_expression "e->X_md = (short)uVar14 + 1" (field_expression "e->X_md" identifier -> field_identifier) = (binary_expression "(short)uVar14 + 1" (cast_expression "(short)uVar14" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)&e->X_add_number = 0;" (assignment_expression "*(undefined4 *)&e->X_add_number = 0" (pointer_expression "*(undefined4 *)&e->X_add_number" * (cast_expression "(undefined4 *)&e->X_add_number" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&e->X_add_number + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&e->X_add_number + 4) = 0" (pointer_expression "*(undefined4 *)((int)&e->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&e->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (return_statement "return 2;" return number_literal ;)) (case_statement "case 10:\n    if (this_operand < 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;\nLAB_00049e58:\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }\n      else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }\n      goto LAB_00049e84;\n    }\n    if (intel_state.in_bracket == 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;\n      goto LAB_00049e58;\n    }\n    if (intel_state.in_scale == 0) {\n      intel_state.scale_factor._0_4_ = 1;\n      intel_state.scale_factor._4_4_ = 0;\n    }\n    psVar12 = e->X_add_symbol;\n    intel_state.in_scale = intel_state.in_scale + 1;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (local_48 != (expressionS *)0x0) goto LAB_0004a795;\nLAB_0004a136:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)intel_state.index;\n      if (intel_state.index != (reg_entry *)0x0) {\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }\n    }\n    else {\n      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;\n      if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }\nLAB_0004a795:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)0x0;\n    }\n    local_44 = psVar12;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      iVar16 = 1;\n    }\n    else {\n      bVar20 = (bool)(bVar20 & iVar10 != 0);\n      iVar16 = iVar10;\n    }\n    if (bVar20) {\n      if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n      else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n    }\n    else {\n      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;\n      intel_state.in_scale = intel_state.in_scale - 1;\n      if (iVar16 == 0) {\n        return 0;\n      }\n    }\n    iVar16 = this_operand;\n    if (intel_state.in_scale == 0) {\n      if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {\n        i.log2_scale_factor = 1;\n      }\n      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }\n    }\n    goto LAB_00049f18;" case number_literal : (if_statement "if (this_operand < 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;\nLAB_00049e58:\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }\n      else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }\n      goto LAB_00049e84;\n    }" if (parenthesized_expression "(this_operand < 0)" ( (binary_expression "this_operand < 0" identifier < number_literal) )) (compound_statement "{\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;\nLAB_00049e58:\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }\n      else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }\n      goto LAB_00049e84;\n    }" { (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (if_statement "if (psVar12 == (symbolS *)0x0) goto LAB_0004a47d;" if (parenthesized_expression "(psVar12 == (symbolS *)0x0)" ( (binary_expression "psVar12 == (symbolS *)0x0" identifier == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004a47d;" goto statement_identifier ;)) (labeled_statement "LAB_00049e58:\n      peVar9 = symbol_get_value_expression(psVar12);" statement_identifier : (expression_statement "peVar9 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar9 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;)) (expression_statement "iVar10 = i386_intel_simplify(peVar9);" (assignment_expression "iVar10 = i386_intel_simplify(peVar9)" identifier = (call_expression "i386_intel_simplify(peVar9)" identifier (argument_list "(peVar9)" ( identifier )))) ;) (if_statement "if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }\n      else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n        bVar8 = e->field_0x10;\n      }" { (expression_statement "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));" (call_expression "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" identifier (argument_list "(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( identifier , (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ))) ;) (expression_statement "bVar8 = e->field_0x10;" (assignment_expression "bVar8 = e->field_0x10" identifier = (field_expression "e->field_0x10" identifier -> field_identifier)) ;) }) (else_clause "else {\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }" else (compound_statement "{\n        if (iVar10 == 0) {\n          return 0;\n        }\n        bVar8 = e->field_0x10;\n      }" { (if_statement "if (iVar10 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar8 = e->field_0x10;" (assignment_expression "bVar8 = e->field_0x10" identifier = (field_expression "e->field_0x10" identifier -> field_identifier)) ;) }))) (goto_statement "goto LAB_00049e84;" goto statement_identifier ;) })) (if_statement "if (intel_state.in_bracket == 0) {\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;\n      goto LAB_00049e58;\n    }" if (parenthesized_expression "(intel_state.in_bracket == 0)" ( (binary_expression "intel_state.in_bracket == 0" (field_expression "intel_state.in_bracket" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      psVar12 = e->X_add_symbol;\n      if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;\n      goto LAB_00049e58;\n    }" { (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (if_statement "if (psVar12 == (symbolS *)0x0) goto LAB_0004a3ce;" if (parenthesized_expression "(psVar12 == (symbolS *)0x0)" ( (binary_expression "psVar12 == (symbolS *)0x0" identifier == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004a3ce;" goto statement_identifier ;)) (goto_statement "goto LAB_00049e58;" goto statement_identifier ;) })) (if_statement "if (intel_state.in_scale == 0) {\n      intel_state.scale_factor._0_4_ = 1;\n      intel_state.scale_factor._4_4_ = 0;\n    }" if (parenthesized_expression "(intel_state.in_scale == 0)" ( (binary_expression "intel_state.in_scale == 0" (field_expression "intel_state.in_scale" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      intel_state.scale_factor._0_4_ = 1;\n      intel_state.scale_factor._4_4_ = 0;\n    }" { (expression_statement "intel_state.scale_factor._0_4_ = 1;" (assignment_expression "intel_state.scale_factor._0_4_ = 1" (field_expression "intel_state.scale_factor._0_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "intel_state.scale_factor._4_4_ = 0;" (assignment_expression "intel_state.scale_factor._4_4_ = 0" (field_expression "intel_state.scale_factor._4_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier) = number_literal) ;) })) (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "intel_state.in_scale = intel_state.in_scale + 1;" (assignment_expression "intel_state.in_scale = intel_state.in_scale + 1" (field_expression "intel_state.in_scale" identifier . field_identifier) = (binary_expression "intel_state.in_scale + 1" (field_expression "intel_state.in_scale" identifier . field_identifier) + number_literal)) ;) (expression_statement "peVar17 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar17 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "iVar10 = i386_intel_simplify(peVar17);" (assignment_expression "iVar10 = i386_intel_simplify(peVar17)" identifier = (call_expression "i386_intel_simplify(peVar17)" identifier (argument_list "(peVar17)" ( identifier )))) ;) (if_statement "if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (local_48 != (expressionS *)0x0) goto LAB_0004a795;\nLAB_0004a136:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)intel_state.index;\n      if (intel_state.index != (reg_entry *)0x0) {\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }\n    }\n    else {\n      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;\n      if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }\nLAB_0004a795:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)0x0;\n    }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (local_48 != (expressionS *)0x0) goto LAB_0004a795;\nLAB_0004a136:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)intel_state.index;\n      if (intel_state.index != (reg_entry *)0x0) {\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }\n    }" { (expression_statement "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));" (call_expression "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" identifier (argument_list "(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( identifier , (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ))) ;) (if_statement "if (local_48 != (expressionS *)0x0) goto LAB_0004a795;" if (parenthesized_expression "(local_48 != (expressionS *)0x0)" ( (binary_expression "local_48 != (expressionS *)0x0" identifier != (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004a795;" goto statement_identifier ;)) (labeled_statement "LAB_0004a136:\n      psVar12 = e->X_op_symbol;" statement_identifier : (expression_statement "psVar12 = e->X_op_symbol;" (assignment_expression "psVar12 = e->X_op_symbol" identifier = (field_expression "e->X_op_symbol" identifier -> field_identifier)) ;)) (expression_statement "bVar20 = true;" (assignment_expression "bVar20 = true" identifier = true) ;) (expression_statement "peVar17 = (expressionS *)intel_state.index;" (assignment_expression "peVar17 = (expressionS *)intel_state.index" identifier = (cast_expression "(expressionS *)intel_state.index" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.index" identifier . field_identifier))) ;) (if_statement "if (intel_state.index != (reg_entry *)0x0) {\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }" if (parenthesized_expression "(intel_state.index != (reg_entry *)0x0)" ( (binary_expression "intel_state.index != (reg_entry *)0x0" (field_expression "intel_state.index" identifier . field_identifier) != (cast_expression "(reg_entry *)0x0" ( (type_descriptor "reg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        peVar17 = symbol_get_value_expression(psVar12);\n        psVar12 = e->X_op_symbol;\n        bVar20 = peVar17 == (expressionS *)0x0;\n      }" { (expression_statement "peVar17 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar17 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "psVar12 = e->X_op_symbol;" (assignment_expression "psVar12 = e->X_op_symbol" identifier = (field_expression "e->X_op_symbol" identifier -> field_identifier)) ;) (expression_statement "bVar20 = peVar17 == (expressionS *)0x0;" (assignment_expression "bVar20 = peVar17 == (expressionS *)0x0" identifier = (binary_expression "peVar17 == (expressionS *)0x0" identifier == (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) }) (else_clause "else {\n      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;\n      if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }\nLAB_0004a795:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)0x0;\n    }" else (compound_statement "{\n      if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;\n      if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }\nLAB_0004a795:\n      psVar12 = e->X_op_symbol;\n      bVar20 = true;\n      peVar17 = (expressionS *)0x0;\n    }" { (if_statement "if ((iVar10 != 0) && (local_48 == (expressionS *)0x0)) goto LAB_0004a136;" if (parenthesized_expression "((iVar10 != 0) && (local_48 == (expressionS *)0x0))" ( (binary_expression "(iVar10 != 0) && (local_48 == (expressionS *)0x0)" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_48 == (expressionS *)0x0)" ( (binary_expression "local_48 == (expressionS *)0x0" identifier == (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0004a136;" goto statement_identifier ;)) (if_statement "if (iVar10 == 0) {\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        intel_state.in_scale = intel_state.in_scale - 1;\n        return 0;\n      }" { (expression_statement "intel_state.in_scale = intel_state.in_scale - 1;" (assignment_expression "intel_state.in_scale = intel_state.in_scale - 1" (field_expression "intel_state.in_scale" identifier . field_identifier) = (binary_expression "intel_state.in_scale - 1" (field_expression "intel_state.in_scale" identifier . field_identifier) - number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_0004a795:\n      psVar12 = e->X_op_symbol;" statement_identifier : (expression_statement "psVar12 = e->X_op_symbol;" (assignment_expression "psVar12 = e->X_op_symbol" identifier = (field_expression "e->X_op_symbol" identifier -> field_identifier)) ;)) (expression_statement "bVar20 = true;" (assignment_expression "bVar20 = true" identifier = true) ;) (expression_statement "peVar17 = (expressionS *)0x0;" (assignment_expression "peVar17 = (expressionS *)0x0" identifier = (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "local_44 = psVar12;" (assignment_expression "local_44 = psVar12" identifier = identifier) ;) (expression_statement "peVar9 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar9 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "iVar10 = i386_intel_simplify(peVar9);" (assignment_expression "iVar10 = i386_intel_simplify(peVar9)" identifier = (call_expression "i386_intel_simplify(peVar9)" identifier (argument_list "(peVar9)" ( identifier )))) ;) (if_statement "if (iVar10 == 2) {\n      S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      iVar16 = 1;\n    }\n    else {\n      bVar20 = (bool)(bVar20 & iVar10 != 0);\n      iVar16 = iVar10;\n    }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n      S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      iVar16 = 1;\n    }" { (expression_statement "S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));" (call_expression "S_SET_SEGMENT(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" identifier (argument_list "(local_44,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( identifier , (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ))) ;) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      bVar20 = (bool)(bVar20 & iVar10 != 0);\n      iVar16 = iVar10;\n    }" else (compound_statement "{\n      bVar20 = (bool)(bVar20 & iVar10 != 0);\n      iVar16 = iVar10;\n    }" { (expression_statement "bVar20 = (bool)(bVar20 & iVar10 != 0);" (assignment_expression "bVar20 = (bool)(bVar20 & iVar10 != 0)" identifier = (cast_expression "(bool)(bVar20 & iVar10 != 0)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar20 & iVar10 != 0)" ( (binary_expression "bVar20 & iVar10 != 0" identifier & (binary_expression "iVar10 != 0" identifier != number_literal)) )))) ;) (expression_statement "iVar16 = iVar10;" (assignment_expression "iVar16 = iVar10" identifier = identifier) ;) }))) (if_statement "if (bVar20) {\n      if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n      else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n    }\n    else {\n      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;\n      intel_state.in_scale = intel_state.in_scale - 1;\n      if (iVar16 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(bVar20)" ( identifier )) (compound_statement "{\n      if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n      else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n    }" { (if_statement "if (((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)) {\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }\n      else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }" if (parenthesized_expression "(((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0))" ( (binary_expression "((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)) &&\n         (peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)" (parenthesized_expression "((local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0))" ( (binary_expression "(local_48 == (expressionS *)0x0) && (intel_state.index != (reg_entry *)0x0)" (parenthesized_expression "(local_48 == (expressionS *)0x0)" ( (binary_expression "local_48 == (expressionS *)0x0" identifier == (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(intel_state.index != (reg_entry *)0x0)" ( (binary_expression "intel_state.index != (reg_entry *)0x0" (field_expression "intel_state.index" identifier . field_identifier) != (cast_expression "(reg_entry *)0x0" ( (type_descriptor "reg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0)" ( (comma_expression "peVar17 = symbol_get_value_expression(e->X_add_symbol), peVar17 != (expressionS *)0x0" (assignment_expression "peVar17 = symbol_get_value_expression(e->X_add_symbol)" identifier = (call_expression "symbol_get_value_expression(e->X_add_symbol)" identifier (argument_list "(e->X_add_symbol)" ( (field_expression "e->X_add_symbol" identifier -> field_identifier) )))) , (binary_expression "peVar17 != (expressionS *)0x0" identifier != (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0004a69c:\n        resolve_expression(peVar17);\n        if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }\n        iVar10 = iVar10 * (uint)intel_state.scale_factor;\n        uVar3 = (ulonglong)(uint)intel_state.scale_factor;\n        intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);\n        intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }" { (labeled_statement "LAB_0004a69c:\n        resolve_expression(peVar17);" statement_identifier : (expression_statement "resolve_expression(peVar17);" (call_expression "resolve_expression(peVar17)" identifier (argument_list "(peVar17)" ( identifier ))) ;)) (if_statement "if ((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)) {\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }\n        else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }" if (parenthesized_expression "((peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0))" ( (binary_expression "(peVar17->field_0x10 == '\x02') &&\n           (((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)" (parenthesized_expression "(peVar17->field_0x10 == '\x02')" ( (binary_expression "peVar17->field_0x10 == '\x02'" (field_expression "peVar17->field_0x10" identifier -> field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "(((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0)" ( (binary_expression "((ulonglong)(intel_state.index)->reg_type & 0x40000000) == 0" (parenthesized_expression "((ulonglong)(intel_state.index)->reg_type & 0x40000000)" ( (binary_expression "(ulonglong)(intel_state.index)->reg_type & 0x40000000" (field_expression "(ulonglong)(intel_state.index)->reg_type" (call_expression "(ulonglong)(intel_state.index)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(intel_state.index)" ( (field_expression "intel_state.index" identifier . field_identifier) ))) -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          uVar14 = (uint)peVar17->X_add_number;\n          iVar10 = *(int *)((int)&peVar17->X_add_number + 4);\n        }" { (expression_statement "uVar14 = (uint)peVar17->X_add_number;" (assignment_expression "uVar14 = (uint)peVar17->X_add_number" identifier = (cast_expression "(uint)peVar17->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "peVar17->X_add_number" identifier -> field_identifier))) ;) (expression_statement "iVar10 = *(int *)((int)&peVar17->X_add_number + 4);" (assignment_expression "iVar10 = *(int *)((int)&peVar17->X_add_number + 4)" identifier = (pointer_expression "*(int *)((int)&peVar17->X_add_number + 4)" * (cast_expression "(int *)((int)&peVar17->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&peVar17->X_add_number + 4)" ( (binary_expression "(int)&peVar17->X_add_number + 4" (cast_expression "(int)&peVar17->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&peVar17->X_add_number" & (field_expression "peVar17->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) }) (else_clause "else {\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }" else (compound_statement "{\n          *(undefined4 *)&peVar17->X_add_number = 0;\n          uVar14 = 0;\n          iVar10 = 0;\n          *(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;\n        }" { (expression_statement "*(undefined4 *)&peVar17->X_add_number = 0;" (assignment_expression "*(undefined4 *)&peVar17->X_add_number = 0" (pointer_expression "*(undefined4 *)&peVar17->X_add_number" * (cast_expression "(undefined4 *)&peVar17->X_add_number" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&peVar17->X_add_number" & (field_expression "peVar17->X_add_number" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)((int)&peVar17->X_add_number + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&peVar17->X_add_number + 4) = 0" (pointer_expression "*(undefined4 *)((int)&peVar17->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&peVar17->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&peVar17->X_add_number + 4)" ( (binary_expression "(int)&peVar17->X_add_number + 4" (cast_expression "(int)&peVar17->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&peVar17->X_add_number" & (field_expression "peVar17->X_add_number" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) }))) (expression_statement "iVar10 = iVar10 * (uint)intel_state.scale_factor;" (assignment_expression "iVar10 = iVar10 * (uint)intel_state.scale_factor" identifier = (binary_expression "iVar10 * (uint)intel_state.scale_factor" identifier * (cast_expression "(uint)intel_state.scale_factor" ( (type_descriptor "uint" type_identifier) ) (field_expression "intel_state.scale_factor" identifier . field_identifier)))) ;) (expression_statement "uVar3 = (ulonglong)(uint)intel_state.scale_factor;" (assignment_expression "uVar3 = (ulonglong)(uint)intel_state.scale_factor" identifier = (cast_expression "(ulonglong)(uint)intel_state.scale_factor" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)intel_state.scale_factor" ( (type_descriptor "uint" type_identifier) ) (field_expression "intel_state.scale_factor" identifier . field_identifier)))) ;) (expression_statement "intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3);" (assignment_expression "intel_state.scale_factor._0_4_ = (uint)(uVar14 * uVar3)" (field_expression "intel_state.scale_factor._0_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier) = (call_expression "(uint)(uVar14 * uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 * uVar3)" ( (binary_expression "uVar14 * uVar3" identifier * identifier) )))) ;) (expression_statement "intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10;" (assignment_expression "intel_state.scale_factor._4_4_ =\n             (int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10" (field_expression "intel_state.scale_factor._4_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier) = (binary_expression "(int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14 + iVar10" (binary_expression "(int)(uVar14 * uVar3 >> 0x20) + intel_state.scale_factor._4_4_ * uVar14" (cast_expression "(int)(uVar14 * uVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 * uVar3 >> 0x20)" ( (binary_expression "uVar14 * uVar3 >> 0x20" (binary_expression "uVar14 * uVar3" identifier * identifier) >> number_literal) ))) + (binary_expression "intel_state.scale_factor._4_4_ * uVar14" (field_expression "intel_state.scale_factor._4_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier) * identifier)) + identifier)) ;) (expression_statement "intel_state.in_scale = intel_state.in_scale - 1;" (assignment_expression "intel_state.in_scale = intel_state.in_scale - 1" (field_expression "intel_state.in_scale" identifier . field_identifier) = (binary_expression "intel_state.in_scale - 1" (field_expression "intel_state.in_scale" identifier . field_identifier) - number_literal)) ;) }) (else_clause "else {\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }" else (compound_statement "{\n        intel_state.in_scale = intel_state.in_scale - 1;\n      }" { (expression_statement "intel_state.in_scale = intel_state.in_scale - 1;" (assignment_expression "intel_state.in_scale = intel_state.in_scale - 1" (field_expression "intel_state.in_scale" identifier . field_identifier) = (binary_expression "intel_state.in_scale - 1" (field_expression "intel_state.in_scale" identifier . field_identifier) - number_literal)) ;) }))) }) (else_clause "else {\n      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;\n      intel_state.in_scale = intel_state.in_scale - 1;\n      if (iVar16 == 0) {\n        return 0;\n      }\n    }" else (compound_statement "{\n      if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;\n      intel_state.in_scale = intel_state.in_scale - 1;\n      if (iVar16 == 0) {\n        return 0;\n      }\n    }" { (if_statement "if ((peVar17 != (expressionS *)0x0) && (iVar10 != 0)) goto LAB_0004a69c;" if (parenthesized_expression "((peVar17 != (expressionS *)0x0) && (iVar10 != 0))" ( (binary_expression "(peVar17 != (expressionS *)0x0) && (iVar10 != 0)" (parenthesized_expression "(peVar17 != (expressionS *)0x0)" ( (binary_expression "peVar17 != (expressionS *)0x0" identifier != (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004a69c;" goto statement_identifier ;)) (expression_statement "intel_state.in_scale = intel_state.in_scale - 1;" (assignment_expression "intel_state.in_scale = intel_state.in_scale - 1" (field_expression "intel_state.in_scale" identifier . field_identifier) = (binary_expression "intel_state.in_scale - 1" (field_expression "intel_state.in_scale" identifier . field_identifier) - number_literal)) ;) (if_statement "if (iVar16 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "iVar16 = this_operand;" (assignment_expression "iVar16 = this_operand" identifier = identifier) ;) (if_statement "if (intel_state.in_scale == 0) {\n      if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {\n        i.log2_scale_factor = 1;\n      }\n      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }\n    }" if (parenthesized_expression "(intel_state.in_scale == 0)" ( (binary_expression "intel_state.in_scale == 0" (field_expression "intel_state.in_scale" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {\n        i.log2_scale_factor = 1;\n      }\n      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }\n    }" { (if_statement "if ((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {\n        i.log2_scale_factor = 1;\n      }\n      else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }" if (parenthesized_expression "((uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0)" ( (binary_expression "(uint)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0" (binary_expression "(uint)intel_state.scale_factor == 2" (cast_expression "(uint)intel_state.scale_factor" ( (type_descriptor "uint" type_identifier) ) (field_expression "intel_state.scale_factor" identifier . field_identifier)) == number_literal) && (binary_expression "intel_state.scale_factor._4_4_ == 0" (field_expression "intel_state.scale_factor._4_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier) == number_literal)) )) (compound_statement "{\n        i.log2_scale_factor = 1;\n      }" { (expression_statement "i.log2_scale_factor = 1;" (assignment_expression "i.log2_scale_factor = 1" (field_expression "i.log2_scale_factor" identifier . field_identifier) = number_literal) ;) }) (else_clause "else if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }" else (if_statement "if (-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)) {\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }\n      else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }" if (parenthesized_expression "(-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor))" ( (binary_expression "-intel_state.scale_factor._4_4_ < (int)(uint)(2 < (uint)intel_state.scale_factor)" (unary_expression "-intel_state.scale_factor._4_4_" - (field_expression "intel_state.scale_factor._4_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier)) < (cast_expression "(int)(uint)(2 < (uint)intel_state.scale_factor)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(2 < (uint)intel_state.scale_factor)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(2 < (uint)intel_state.scale_factor)" ( (binary_expression "2 < (uint)intel_state.scale_factor" number_literal < (cast_expression "(uint)intel_state.scale_factor" ( (type_descriptor "uint" type_identifier) ) (field_expression "intel_state.scale_factor" identifier . field_identifier))) ))))) )) (compound_statement "{\n        if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }\n      }" { (if_statement "if ((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {\n          i.log2_scale_factor = 2;\n        }\n        else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }" if (parenthesized_expression "((uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0)" ( (binary_expression "(uint)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0" (binary_expression "(uint)intel_state.scale_factor == 4" (cast_expression "(uint)intel_state.scale_factor" ( (type_descriptor "uint" type_identifier) ) (field_expression "intel_state.scale_factor" identifier . field_identifier)) == number_literal) && (binary_expression "intel_state.scale_factor._4_4_ == 0" (field_expression "intel_state.scale_factor._4_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier) == number_literal)) )) (compound_statement "{\n          i.log2_scale_factor = 2;\n        }" { (expression_statement "i.log2_scale_factor = 2;" (assignment_expression "i.log2_scale_factor = 2" (field_expression "i.log2_scale_factor" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }" else (compound_statement "{\n          if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;\n          i.log2_scale_factor = 3;\n        }" { (if_statement "if (intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)\n          goto LAB_0004a8b9;" if (parenthesized_expression "(intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8)" ( (binary_expression "intel_state.scale_factor._4_4_ != 0 || (uint)intel_state.scale_factor != 8" (binary_expression "intel_state.scale_factor._4_4_ != 0" (field_expression "intel_state.scale_factor._4_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier) != number_literal) || (binary_expression "(uint)intel_state.scale_factor != 8" (cast_expression "(uint)intel_state.scale_factor" ( (type_descriptor "uint" type_identifier) ) (field_expression "intel_state.scale_factor" identifier . field_identifier)) != number_literal)) )) (goto_statement "goto LAB_0004a8b9;" goto statement_identifier ;)) (expression_statement "i.log2_scale_factor = 3;" (assignment_expression "i.log2_scale_factor = 3" (field_expression "i.log2_scale_factor" identifier . field_identifier) = number_literal) ;) }))) }) (else_clause "else if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }" else (if_statement "if (intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1) {\n        i.log2_scale_factor = 0;\n      }\n      else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }" if (parenthesized_expression "(intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1)" ( (binary_expression "intel_state.scale_factor._4_4_ == 0 && (uint)intel_state.scale_factor == 1" (binary_expression "intel_state.scale_factor._4_4_ == 0" (field_expression "intel_state.scale_factor._4_4_" (field_expression "intel_state.scale_factor" identifier . field_identifier) . field_identifier) == number_literal) && (binary_expression "(uint)intel_state.scale_factor == 1" (cast_expression "(uint)intel_state.scale_factor" ( (type_descriptor "uint" type_identifier) ) (field_expression "intel_state.scale_factor" identifier . field_identifier)) == number_literal)) )) (compound_statement "{\n        i.log2_scale_factor = 0;\n      }" { (expression_statement "i.log2_scale_factor = 0;" (assignment_expression "i.log2_scale_factor = 0" (field_expression "i.log2_scale_factor" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }" else (compound_statement "{\nLAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n      }" { (labeled_statement "LAB_0004a8b9:\n        intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);" statement_identifier : (expression_statement "intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0);" (assignment_expression "intel_state.index = (reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0)" (field_expression "intel_state.index" identifier . field_identifier) = (cast_expression "(reg_entry *)(PTR_i386_regtab_0007ff5c + 0x2d0)" ( (type_descriptor "reg_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_i386_regtab_0007ff5c + 0x2d0)" ( (binary_expression "PTR_i386_regtab_0007ff5c + 0x2d0" identifier + number_literal) )))) ;)) }))))))) })) (goto_statement "goto LAB_00049f18;" goto statement_identifier ;)) (case_statement "case 0x1d:\n    psVar12 = e->X_add_symbol;\n    if (psVar12 != (symbolS *)0x0) {\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }\n      else if (iVar10 == 0) {\n        return 0;\n      }\n      if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    }\n    if (intel_state.in_offset == 0) {\n      intel_state.in_bracket = intel_state.in_bracket + 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n    }\n    else {\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if (e->X_add_symbol != (symbolS *)0x0) {\n      e->field_0x10 = 0x13;\n      return 1;\n    }\n    psVar12 = e->X_op_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = peVar17->X_add_symbol;\n      e->X_op_symbol = peVar17->X_op_symbol;\n      *(int *)&e->X_add_number = (int)peVar17->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);\n      uVar4 = *(undefined2 *)&peVar17->field_0x10;\n      uVar5 = peVar17->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      iVar16 = this_operand;\n      goto LAB_00049f18;\n    }\n    if (peVar17->field_0x10 == '\x03') {\n      pcVar13 = S_GET_NAME(peVar17->X_add_symbol);\n      iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");\n      if (iVar10 == 0) {\n        psVar12 = peVar17->X_add_symbol;\n      }\n    }\n    e->X_add_symbol = psVar12;\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    goto LAB_0004a395;" case number_literal : (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (if_statement "if (psVar12 != (symbolS *)0x0) {\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }\n      else if (iVar10 == 0) {\n        return 0;\n      }\n      if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    }" if (parenthesized_expression "(psVar12 != (symbolS *)0x0)" ( (binary_expression "psVar12 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      peVar9 = symbol_get_value_expression(psVar12);\n      iVar10 = i386_intel_simplify(peVar9);\n      if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }\n      else if (iVar10 == 0) {\n        return 0;\n      }\n      if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    }" { (expression_statement "peVar9 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar9 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "iVar10 = i386_intel_simplify(peVar9);" (assignment_expression "iVar10 = i386_intel_simplify(peVar9)" identifier = (call_expression "i386_intel_simplify(peVar9)" identifier (argument_list "(peVar9)" ( identifier )))) ;) (if_statement "if (iVar10 == 2) {\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }\n      else if (iVar10 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n        S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      }" { (expression_statement "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));" (call_expression "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" identifier (argument_list "(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( identifier , (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ))) ;) }) (else_clause "else if (iVar10 == 0) {\n        return 0;\n      }" else (if_statement "if (iVar10 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })))) (if_statement "if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;" if (parenthesized_expression "((-1 < this_operand) && (peVar17 != i.op[this_operand].disps))" ( (binary_expression "(-1 < this_operand) && (peVar17 != i.op[this_operand].disps)" (parenthesized_expression "(-1 < this_operand)" ( (binary_expression "-1 < this_operand" number_literal < identifier) )) && (parenthesized_expression "(peVar17 != i.op[this_operand].disps)" ( (binary_expression "peVar17 != i.op[this_operand].disps" identifier != (field_expression "i.op[this_operand].disps" (subscript_expression "i.op[this_operand]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier)) ))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) })) (if_statement "if (intel_state.in_offset == 0) {\n      intel_state.in_bracket = intel_state.in_bracket + 1;\n    }" if (parenthesized_expression "(intel_state.in_offset == 0)" ( (binary_expression "intel_state.in_offset == 0" (field_expression "intel_state.in_offset" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      intel_state.in_bracket = intel_state.in_bracket + 1;\n    }" { (expression_statement "intel_state.in_bracket = intel_state.in_bracket + 1;" (assignment_expression "intel_state.in_bracket = intel_state.in_bracket + 1" (field_expression "intel_state.in_bracket" identifier . field_identifier) = (binary_expression "intel_state.in_bracket + 1" (field_expression "intel_state.in_bracket" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "psVar12 = e->X_op_symbol;" (assignment_expression "psVar12 = e->X_op_symbol" identifier = (field_expression "e->X_op_symbol" identifier -> field_identifier)) ;) (expression_statement "peVar17 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar17 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "iVar10 = i386_intel_simplify(peVar17);" (assignment_expression "iVar10 = i386_intel_simplify(peVar17)" identifier = (call_expression "i386_intel_simplify(peVar17)" identifier (argument_list "(peVar17)" ( identifier )))) ;) (if_statement "if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n    }\n    else {\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n    }" { (expression_statement "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));" (call_expression "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" identifier (argument_list "(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( identifier , (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ))) ;) (if_statement "if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }" if (parenthesized_expression "(intel_state.in_offset == 0)" ( (binary_expression "intel_state.in_offset == 0" (field_expression "intel_state.in_offset" identifier . field_identifier) == number_literal) )) (compound_statement "{\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }" { (expression_statement "intel_state.in_bracket = intel_state.in_bracket - 1;" (assignment_expression "intel_state.in_bracket = intel_state.in_bracket - 1" (field_expression "intel_state.in_bracket" identifier . field_identifier) = (binary_expression "intel_state.in_bracket - 1" (field_expression "intel_state.in_bracket" identifier . field_identifier) - number_literal)) ;) })) }) (else_clause "else {\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }" else (compound_statement "{\n      if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }" { (if_statement "if (intel_state.in_offset == 0) {\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }" if (parenthesized_expression "(intel_state.in_offset == 0)" ( (binary_expression "intel_state.in_offset == 0" (field_expression "intel_state.in_offset" identifier . field_identifier) == number_literal) )) (compound_statement "{\n        intel_state.in_bracket = intel_state.in_bracket - 1;\n      }" { (expression_statement "intel_state.in_bracket = intel_state.in_bracket - 1;" (assignment_expression "intel_state.in_bracket = intel_state.in_bracket - 1" (field_expression "intel_state.in_bracket" identifier . field_identifier) = (binary_expression "intel_state.in_bracket - 1" (field_expression "intel_state.in_bracket" identifier . field_identifier) - number_literal)) ;) })) (if_statement "if (iVar10 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }))) (if_statement "if (e->X_add_symbol != (symbolS *)0x0) {\n      e->field_0x10 = 0x13;\n      return 1;\n    }" if (parenthesized_expression "(e->X_add_symbol != (symbolS *)0x0)" ( (binary_expression "e->X_add_symbol != (symbolS *)0x0" (field_expression "e->X_add_symbol" identifier -> field_identifier) != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      e->field_0x10 = 0x13;\n      return 1;\n    }" { (expression_statement "e->field_0x10 = 0x13;" (assignment_expression "e->field_0x10 = 0x13" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "psVar12 = e->X_op_symbol;" (assignment_expression "psVar12 = e->X_op_symbol" identifier = (field_expression "e->X_op_symbol" identifier -> field_identifier)) ;) (expression_statement "peVar17 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar17 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "paVar11 = S_GET_SEGMENT(psVar12);" (assignment_expression "paVar11 = S_GET_SEGMENT(psVar12)" identifier = (call_expression "S_GET_SEGMENT(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (if_statement "if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = peVar17->X_add_symbol;\n      e->X_op_symbol = peVar17->X_op_symbol;\n      *(int *)&e->X_add_number = (int)peVar17->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);\n      uVar4 = *(undefined2 *)&peVar17->field_0x10;\n      uVar5 = peVar17->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      iVar16 = this_operand;\n      goto LAB_00049f18;\n    }" if (parenthesized_expression "(paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( (binary_expression "paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" identifier == (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = peVar17->X_add_symbol;\n      e->X_op_symbol = peVar17->X_op_symbol;\n      *(int *)&e->X_add_number = (int)peVar17->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);\n      uVar4 = *(undefined2 *)&peVar17->field_0x10;\n      uVar5 = peVar17->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      iVar16 = this_operand;\n      goto LAB_00049f18;\n    }" { (expression_statement "uVar14 = (uint)e->X_add_number;" (assignment_expression "uVar14 = (uint)e->X_add_number" identifier = (cast_expression "(uint)e->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e->X_add_number" identifier -> field_identifier))) ;) (expression_statement "iVar10 = *(int *)((int)&e->X_add_number + 4);" (assignment_expression "iVar10 = *(int *)((int)&e->X_add_number + 4)" identifier = (pointer_expression "*(int *)((int)&e->X_add_number + 4)" * (cast_expression "(int *)((int)&e->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "e->X_add_symbol = peVar17->X_add_symbol;" (assignment_expression "e->X_add_symbol = peVar17->X_add_symbol" (field_expression "e->X_add_symbol" identifier -> field_identifier) = (field_expression "peVar17->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "e->X_op_symbol = peVar17->X_op_symbol;" (assignment_expression "e->X_op_symbol = peVar17->X_op_symbol" (field_expression "e->X_op_symbol" identifier -> field_identifier) = (field_expression "peVar17->X_op_symbol" identifier -> field_identifier)) ;) (expression_statement "*(int *)&e->X_add_number = (int)peVar17->X_add_number;" (assignment_expression "*(int *)&e->X_add_number = (int)peVar17->X_add_number" (pointer_expression "*(int *)&e->X_add_number" * (cast_expression "(int *)&e->X_add_number" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier)))) = (cast_expression "(int)peVar17->X_add_number" ( (type_descriptor "int" primitive_type) ) (field_expression "peVar17->X_add_number" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4);" (assignment_expression "*(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&peVar17->X_add_number + 4)" (pointer_expression "*(undefined4 *)((int)&e->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&e->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&peVar17->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&peVar17->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&peVar17->X_add_number + 4)" ( (binary_expression "(int)&peVar17->X_add_number + 4" (cast_expression "(int)&peVar17->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&peVar17->X_add_number" & (field_expression "peVar17->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined2 *)&peVar17->field_0x10;" (assignment_expression "uVar4 = *(undefined2 *)&peVar17->field_0x10" identifier = (pointer_expression "*(undefined2 *)&peVar17->field_0x10" * (cast_expression "(undefined2 *)&peVar17->field_0x10" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&peVar17->field_0x10" & (field_expression "peVar17->field_0x10" identifier -> field_identifier))))) ;) (expression_statement "uVar5 = peVar17->X_md;" (assignment_expression "uVar5 = peVar17->X_md" identifier = (field_expression "peVar17->X_md" identifier -> field_identifier)) ;) (expression_statement "poVar1 = &e->X_add_number;" (assignment_expression "poVar1 = &e->X_add_number" identifier = (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) ;) (expression_statement "oVar6 = *poVar1;" (assignment_expression "oVar6 = *poVar1" identifier = (pointer_expression "*poVar1" * identifier)) ;) (expression_statement "*(uint *)poVar1 = (int)*poVar1 + uVar14;" (assignment_expression "*(uint *)poVar1 = (int)*poVar1 + uVar14" (pointer_expression "*(uint *)poVar1" * (cast_expression "(uint *)poVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)*poVar1 + uVar14" (cast_expression "(int)*poVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*poVar1" * identifier)) + identifier)) ;) (expression_statement "*(undefined2 *)&e->field_0x10 = uVar4;" (assignment_expression "*(undefined2 *)&e->field_0x10 = uVar4" (pointer_expression "*(undefined2 *)&e->field_0x10" * (cast_expression "(undefined2 *)&e->field_0x10" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->field_0x10" & (field_expression "e->field_0x10" identifier -> field_identifier)))) = identifier) ;) (expression_statement "e->X_md = uVar5;" (assignment_expression "e->X_md = uVar5" (field_expression "e->X_md" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar2 = (int *)((int)&e->X_add_number + 4);" (assignment_expression "piVar2 = (int *)((int)&e->X_add_number + 4)" identifier = (cast_expression "(int *)((int)&e->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);" (assignment_expression "*piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14)" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14)" (binary_expression "*piVar2 + iVar10" (pointer_expression "*piVar2" * identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)oVar6,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)oVar6,uVar14)" identifier (argument_list "((uint)oVar6,uVar14)" ( (cast_expression "(uint)oVar6" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (expression_statement "iVar16 = this_operand;" (assignment_expression "iVar16 = this_operand" identifier = identifier) ;) (goto_statement "goto LAB_00049f18;" goto statement_identifier ;) })) (if_statement "if (peVar17->field_0x10 == '\x03') {\n      pcVar13 = S_GET_NAME(peVar17->X_add_symbol);\n      iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");\n      if (iVar10 == 0) {\n        psVar12 = peVar17->X_add_symbol;\n      }\n    }" if (parenthesized_expression "(peVar17->field_0x10 == '\x03')" ( (binary_expression "peVar17->field_0x10 == '\x03'" (field_expression "peVar17->field_0x10" identifier -> field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar13 = S_GET_NAME(peVar17->X_add_symbol);\n      iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");\n      if (iVar10 == 0) {\n        psVar12 = peVar17->X_add_symbol;\n      }\n    }" { (expression_statement "pcVar13 = S_GET_NAME(peVar17->X_add_symbol);" (assignment_expression "pcVar13 = S_GET_NAME(peVar17->X_add_symbol)" identifier = (call_expression "S_GET_NAME(peVar17->X_add_symbol)" identifier (argument_list "(peVar17->X_add_symbol)" ( (field_expression "peVar17->X_add_symbol" identifier -> field_identifier) )))) ;) (expression_statement "iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_");" (assignment_expression "iVar10 = strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_")" identifier = (call_expression "strcmp(pcVar13,"_GLOBAL_OFFSET_TABLE_")" identifier (argument_list "(pcVar13,"_GLOBAL_OFFSET_TABLE_")" ( identifier , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") )))) ;) (if_statement "if (iVar10 == 0) {\n        psVar12 = peVar17->X_add_symbol;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        psVar12 = peVar17->X_add_symbol;\n      }" { (expression_statement "psVar12 = peVar17->X_add_symbol;" (assignment_expression "psVar12 = peVar17->X_add_symbol" identifier = (field_expression "peVar17->X_add_symbol" identifier -> field_identifier)) ;) })) })) (expression_statement "e->X_add_symbol = psVar12;" (assignment_expression "e->X_add_symbol = psVar12" (field_expression "e->X_add_symbol" identifier -> field_identifier) = identifier) ;) (expression_statement "e->X_op_symbol = (symbolS *)0x0;" (assignment_expression "e->X_op_symbol = (symbolS *)0x0" (field_expression "e->X_op_symbol" identifier -> field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "e->field_0x10 = 3;" (assignment_expression "e->field_0x10 = 3" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0004a395;" goto statement_identifier ;)) (case_statement "case 0x1f:\n    peVar9 = symbol_get_value_expression(e->X_op_symbol);\n    if (peVar9->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_op_symbol;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;\n    psVar12 = intel_state.seg;\n    if (intel_state.in_offset == 0) {\n      psVar12 = e->X_add_symbol;\n      if (intel_state.seg != (symbolS *)0x0) {\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }\n    }\n    intel_state.seg = psVar12;\n    psVar12 = e->X_op_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) goto LAB_0004a4cf;\n    goto LAB_0004a379;" case number_literal : (expression_statement "peVar9 = symbol_get_value_expression(e->X_op_symbol);" (assignment_expression "peVar9 = symbol_get_value_expression(e->X_op_symbol)" identifier = (call_expression "symbol_get_value_expression(e->X_op_symbol)" identifier (argument_list "(e->X_op_symbol)" ( (field_expression "e->X_op_symbol" identifier -> field_identifier) )))) ;) (if_statement "if (peVar9->field_0x10 == '\x05') goto LAB_0004a3f0;" if (parenthesized_expression "(peVar9->field_0x10 == '\x05')" ( (binary_expression "peVar9->field_0x10 == '\x05'" (field_expression "peVar9->field_0x10" identifier -> field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (expression_statement "psVar12 = e->X_op_symbol;" (assignment_expression "psVar12 = e->X_op_symbol" identifier = (field_expression "e->X_op_symbol" identifier -> field_identifier)) ;) (expression_statement "peVar9 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar9 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "iVar10 = i386_intel_simplify(peVar9);" (assignment_expression "iVar10 = i386_intel_simplify(peVar9)" identifier = (call_expression "i386_intel_simplify(peVar9)" identifier (argument_list "(peVar9)" ( identifier )))) ;) (if_statement "if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }" { (expression_statement "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));" (call_expression "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" identifier (argument_list "(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( identifier , (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ))) ;) }) (else_clause "else if (iVar10 == 0) {\n      return 0;\n    }" else (if_statement "if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })))) (if_statement "if ((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) goto LAB_0004a3f0;" if (parenthesized_expression "((-1 < this_operand) && (peVar17 != i.op[this_operand].disps))" ( (binary_expression "(-1 < this_operand) && (peVar17 != i.op[this_operand].disps)" (parenthesized_expression "(-1 < this_operand)" ( (binary_expression "-1 < this_operand" number_literal < identifier) )) && (parenthesized_expression "(peVar17 != i.op[this_operand].disps)" ( (binary_expression "peVar17 != i.op[this_operand].disps" identifier != (field_expression "i.op[this_operand].disps" (subscript_expression "i.op[this_operand]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier)) ))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (expression_statement "psVar12 = intel_state.seg;" (assignment_expression "psVar12 = intel_state.seg" identifier = (field_expression "intel_state.seg" identifier . field_identifier)) ;) (if_statement "if (intel_state.in_offset == 0) {\n      psVar12 = e->X_add_symbol;\n      if (intel_state.seg != (symbolS *)0x0) {\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }\n    }" if (parenthesized_expression "(intel_state.in_offset == 0)" ( (binary_expression "intel_state.in_offset == 0" (field_expression "intel_state.in_offset" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      psVar12 = e->X_add_symbol;\n      if (intel_state.seg != (symbolS *)0x0) {\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }\n    }" { (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (if_statement "if (intel_state.seg != (symbolS *)0x0) {\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }" if (parenthesized_expression "(intel_state.seg != (symbolS *)0x0)" ( (binary_expression "intel_state.seg != (symbolS *)0x0" (field_expression "intel_state.seg" identifier . field_identifier) != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        exp._16_1_ = 0x1f;\n        exp.X_add_symbol = e->X_add_symbol;\n        exp.X_op_symbol = intel_state.seg;\n        psVar12 = make_expr_symbol(&exp);\n      }" { (expression_statement "exp._16_1_ = 0x1f;" (assignment_expression "exp._16_1_ = 0x1f" (field_expression "exp._16_1_" identifier . field_identifier) = number_literal) ;) (expression_statement "exp.X_add_symbol = e->X_add_symbol;" (assignment_expression "exp.X_add_symbol = e->X_add_symbol" (field_expression "exp.X_add_symbol" identifier . field_identifier) = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "exp.X_op_symbol = intel_state.seg;" (assignment_expression "exp.X_op_symbol = intel_state.seg" (field_expression "exp.X_op_symbol" identifier . field_identifier) = (field_expression "intel_state.seg" identifier . field_identifier)) ;) (expression_statement "psVar12 = make_expr_symbol(&exp);" (assignment_expression "psVar12 = make_expr_symbol(&exp)" identifier = (call_expression "make_expr_symbol(&exp)" identifier (argument_list "(&exp)" ( (pointer_expression "&exp" & identifier) )))) ;) })) })) (expression_statement "intel_state.seg = psVar12;" (assignment_expression "intel_state.seg = psVar12" (field_expression "intel_state.seg" identifier . field_identifier) = identifier) ;) (expression_statement "psVar12 = e->X_op_symbol;" (assignment_expression "psVar12 = e->X_op_symbol" identifier = (field_expression "e->X_op_symbol" identifier -> field_identifier)) ;) (expression_statement "local_44 = psVar12;" (assignment_expression "local_44 = psVar12" identifier = identifier) ;) (expression_statement "local_48 = symbol_get_value_expression(psVar12);" (assignment_expression "local_48 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "paVar11 = S_GET_SEGMENT(psVar12);" (assignment_expression "paVar11 = S_GET_SEGMENT(psVar12)" identifier = (call_expression "S_GET_SEGMENT(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (if_statement "if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) goto LAB_0004a4cf;" if (parenthesized_expression "(paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( (binary_expression "paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" identifier == (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) )))) )) (goto_statement "goto LAB_0004a4cf;" goto statement_identifier ;)) (goto_statement "goto LAB_0004a379;" goto statement_identifier ;)) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:\n    if (intel_state.op_modifier == O_absent) {\n      intel_state.op_modifier = (uint)bVar8;\n    }" case number_literal : (if_statement "if (intel_state.op_modifier == O_absent) {\n      intel_state.op_modifier = (uint)bVar8;\n    }" if (parenthesized_expression "(intel_state.op_modifier == O_absent)" ( (binary_expression "intel_state.op_modifier == O_absent" (field_expression "intel_state.op_modifier" identifier . field_identifier) == identifier) )) (compound_statement "{\n      intel_state.op_modifier = (uint)bVar8;\n    }" { (expression_statement "intel_state.op_modifier = (uint)bVar8;" (assignment_expression "intel_state.op_modifier = (uint)bVar8" (field_expression "intel_state.op_modifier" identifier . field_identifier) = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (case_statement "case 0x3c:\n    peVar17 = symbol_get_value_expression(e->X_add_symbol);\n    if (peVar17->field_0x10 == '\x05') goto LAB_0004a3f0;\n    psVar12 = e->X_add_symbol;\n    peVar17 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar17);\n    puVar7 = PTR__bfd_std_section_0007ffb0;\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n    psVar12 = e->X_add_symbol;\n    local_44 = psVar12;\n    local_48 = symbol_get_value_expression(psVar12);\n    paVar11 = S_GET_SEGMENT(psVar12);\n    if (paVar11 == (segT)(puVar7 + 0x180)) {\nLAB_0004a4cf:\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = local_48->X_add_symbol;\n      e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];\n      *(int *)&e->X_add_number = (int)local_48->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)\n      ;\n      uVar4 = *(undefined2 *)&local_48->field_0x10;\n      uVar5 = local_48->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      iVar16 = this_operand;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      goto LAB_00049f18;\n    }\nLAB_0004a379:\n    if (local_48->field_0x10 == '\x03') {\n      uVar19 = auStack_4c < (undefined1 *)0xc;\n      uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n      iVar10 = 0x16;\n      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }\n    }\n    e->X_op_symbol = (symbolS *)0x0;\n    e->field_0x10 = 3;\n    e->X_add_symbol = local_44;\nLAB_0004a395:\n    if (this_operand < 0) {\n      return 1;\n    }\n    goto LAB_00049f28;" case number_literal : (expression_statement "peVar17 = symbol_get_value_expression(e->X_add_symbol);" (assignment_expression "peVar17 = symbol_get_value_expression(e->X_add_symbol)" identifier = (call_expression "symbol_get_value_expression(e->X_add_symbol)" identifier (argument_list "(e->X_add_symbol)" ( (field_expression "e->X_add_symbol" identifier -> field_identifier) )))) ;) (if_statement "if (peVar17->field_0x10 == '\x05') goto LAB_0004a3f0;" if (parenthesized_expression "(peVar17->field_0x10 == '\x05')" ( (binary_expression "peVar17->field_0x10 == '\x05'" (field_expression "peVar17->field_0x10" identifier -> field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "peVar17 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar17 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "iVar10 = i386_intel_simplify(peVar17);" (assignment_expression "iVar10 = i386_intel_simplify(peVar17)" identifier = (call_expression "i386_intel_simplify(peVar17)" identifier (argument_list "(peVar17)" ( identifier )))) ;) (expression_statement "puVar7 = PTR__bfd_std_section_0007ffb0;" (assignment_expression "puVar7 = PTR__bfd_std_section_0007ffb0" identifier = identifier) ;) (if_statement "if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }" { (expression_statement "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));" (call_expression "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" identifier (argument_list "(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( identifier , (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ))) ;) }) (else_clause "else if (iVar10 == 0) {\n      return 0;\n    }" else (if_statement "if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })))) (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "local_44 = psVar12;" (assignment_expression "local_44 = psVar12" identifier = identifier) ;) (expression_statement "local_48 = symbol_get_value_expression(psVar12);" (assignment_expression "local_48 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "paVar11 = S_GET_SEGMENT(psVar12);" (assignment_expression "paVar11 = S_GET_SEGMENT(psVar12)" identifier = (call_expression "S_GET_SEGMENT(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (if_statement "if (paVar11 == (segT)(puVar7 + 0x180)) {\nLAB_0004a4cf:\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = local_48->X_add_symbol;\n      e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];\n      *(int *)&e->X_add_number = (int)local_48->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)\n      ;\n      uVar4 = *(undefined2 *)&local_48->field_0x10;\n      uVar5 = local_48->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      iVar16 = this_operand;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      goto LAB_00049f18;\n    }" if (parenthesized_expression "(paVar11 == (segT)(puVar7 + 0x180))" ( (binary_expression "paVar11 == (segT)(puVar7 + 0x180)" identifier == (call_expression "(segT)(puVar7 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(puVar7 + 0x180)" ( (binary_expression "puVar7 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0004a4cf:\n      uVar14 = (uint)e->X_add_number;\n      iVar10 = *(int *)((int)&e->X_add_number + 4);\n      e->X_add_symbol = local_48->X_add_symbol;\n      e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];\n      *(int *)&e->X_add_number = (int)local_48->X_add_number;\n      *(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)\n      ;\n      uVar4 = *(undefined2 *)&local_48->field_0x10;\n      uVar5 = local_48->X_md;\n      poVar1 = &e->X_add_number;\n      oVar6 = *poVar1;\n      *(uint *)poVar1 = (int)*poVar1 + uVar14;\n      iVar16 = this_operand;\n      *(undefined2 *)&e->field_0x10 = uVar4;\n      e->X_md = uVar5;\n      piVar2 = (int *)((int)&e->X_add_number + 4);\n      *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n      goto LAB_00049f18;\n    }" { (labeled_statement "LAB_0004a4cf:\n      uVar14 = (uint)e->X_add_number;" statement_identifier : (expression_statement "uVar14 = (uint)e->X_add_number;" (assignment_expression "uVar14 = (uint)e->X_add_number" identifier = (cast_expression "(uint)e->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e->X_add_number" identifier -> field_identifier))) ;)) (expression_statement "iVar10 = *(int *)((int)&e->X_add_number + 4);" (assignment_expression "iVar10 = *(int *)((int)&e->X_add_number + 4)" identifier = (pointer_expression "*(int *)((int)&e->X_add_number + 4)" * (cast_expression "(int *)((int)&e->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "e->X_add_symbol = local_48->X_add_symbol;" (assignment_expression "e->X_add_symbol = local_48->X_add_symbol" (field_expression "e->X_add_symbol" identifier -> field_identifier) = (field_expression "local_48->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0];" (assignment_expression "e->X_op_symbol = (symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0]" (field_expression "e->X_op_symbol" identifier -> field_identifier) = (cast_expression "(symbolS *)((i386_operand_type *)&local_48->X_op_symbol)->array[0]" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((i386_operand_type *)&local_48->X_op_symbol)->array[0]" (field_expression "((i386_operand_type *)&local_48->X_op_symbol)->array" (parenthesized_expression "((i386_operand_type *)&local_48->X_op_symbol)" ( (cast_expression "(i386_operand_type *)&local_48->X_op_symbol" ( (type_descriptor "i386_operand_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_48->X_op_symbol" & (field_expression "local_48->X_op_symbol" identifier -> field_identifier))) )) -> field_identifier) [ number_literal ]))) ;) (expression_statement "*(int *)&e->X_add_number = (int)local_48->X_add_number;" (assignment_expression "*(int *)&e->X_add_number = (int)local_48->X_add_number" (pointer_expression "*(int *)&e->X_add_number" * (cast_expression "(int *)&e->X_add_number" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier)))) = (cast_expression "(int)local_48->X_add_number" ( (type_descriptor "int" primitive_type) ) (field_expression "local_48->X_add_number" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)\n      ;" (assignment_expression "*(undefined4 *)((int)&e->X_add_number + 4) = *(undefined4 *)((int)&local_48->X_add_number + 4)" (pointer_expression "*(undefined4 *)((int)&e->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&e->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&local_48->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&local_48->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_48->X_add_number + 4)" ( (binary_expression "(int)&local_48->X_add_number + 4" (cast_expression "(int)&local_48->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_48->X_add_number" & (field_expression "local_48->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined2 *)&local_48->field_0x10;" (assignment_expression "uVar4 = *(undefined2 *)&local_48->field_0x10" identifier = (pointer_expression "*(undefined2 *)&local_48->field_0x10" * (cast_expression "(undefined2 *)&local_48->field_0x10" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_48->field_0x10" & (field_expression "local_48->field_0x10" identifier -> field_identifier))))) ;) (expression_statement "uVar5 = local_48->X_md;" (assignment_expression "uVar5 = local_48->X_md" identifier = (field_expression "local_48->X_md" identifier -> field_identifier)) ;) (expression_statement "poVar1 = &e->X_add_number;" (assignment_expression "poVar1 = &e->X_add_number" identifier = (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) ;) (expression_statement "oVar6 = *poVar1;" (assignment_expression "oVar6 = *poVar1" identifier = (pointer_expression "*poVar1" * identifier)) ;) (expression_statement "*(uint *)poVar1 = (int)*poVar1 + uVar14;" (assignment_expression "*(uint *)poVar1 = (int)*poVar1 + uVar14" (pointer_expression "*(uint *)poVar1" * (cast_expression "(uint *)poVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)*poVar1 + uVar14" (cast_expression "(int)*poVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*poVar1" * identifier)) + identifier)) ;) (expression_statement "iVar16 = this_operand;" (assignment_expression "iVar16 = this_operand" identifier = identifier) ;) (expression_statement "*(undefined2 *)&e->field_0x10 = uVar4;" (assignment_expression "*(undefined2 *)&e->field_0x10 = uVar4" (pointer_expression "*(undefined2 *)&e->field_0x10" * (cast_expression "(undefined2 *)&e->field_0x10" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->field_0x10" & (field_expression "e->field_0x10" identifier -> field_identifier)))) = identifier) ;) (expression_statement "e->X_md = uVar5;" (assignment_expression "e->X_md = uVar5" (field_expression "e->X_md" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar2 = (int *)((int)&e->X_add_number + 4);" (assignment_expression "piVar2 = (int *)((int)&e->X_add_number + 4)" identifier = (cast_expression "(int *)((int)&e->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);" (assignment_expression "*piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14)" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14)" (binary_expression "*piVar2 + iVar10" (pointer_expression "*piVar2" * identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)oVar6,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)oVar6,uVar14)" identifier (argument_list "((uint)oVar6,uVar14)" ( (cast_expression "(uint)oVar6" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (goto_statement "goto LAB_00049f18;" goto statement_identifier ;) })) (labeled_statement "LAB_0004a379:\n    if (local_48->field_0x10 == '\x03') {\n      uVar19 = auStack_4c < (undefined1 *)0xc;\n      uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n      iVar10 = 0x16;\n      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }\n    }" statement_identifier : (if_statement "if (local_48->field_0x10 == '\x03') {\n      uVar19 = auStack_4c < (undefined1 *)0xc;\n      uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n      iVar10 = 0x16;\n      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }\n    }" if (parenthesized_expression "(local_48->field_0x10 == '\x03')" ( (binary_expression "local_48->field_0x10 == '\x03'" (field_expression "local_48->field_0x10" identifier -> field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      uVar19 = auStack_4c < (undefined1 *)0xc;\n      uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n      iVar10 = 0x16;\n      pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);\n      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }\n    }" { (expression_statement "uVar19 = auStack_4c < (undefined1 *)0xc;" (assignment_expression "uVar19 = auStack_4c < (undefined1 *)0xc" identifier = (binary_expression "auStack_4c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar21 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "uVar21 = &stack0x00000000 == (undefined1 *)0x58" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x58" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);" (assignment_expression "pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol)" identifier = (cast_expression "(byte *)S_GET_NAME(local_48->X_add_symbol)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "S_GET_NAME(local_48->X_add_symbol)" identifier (argument_list "(local_48->X_add_symbol)" ( (field_expression "local_48->X_add_symbol" identifier -> field_identifier) ))))) ;) (expression_statement "iVar10 = 0x16;" (assignment_expression "iVar10 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_"" identifier = (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content "))) ;) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      } while ((bool)uVar21);" do (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        uVar19 = *pbVar15 < *pbVar18;\n        uVar21 = *pbVar15 == *pbVar18;\n        pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n        pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n      }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = *pbVar15 < *pbVar18;" (assignment_expression "uVar19 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar21 = *pbVar15 == *pbVar18;" (assignment_expression "uVar21 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (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) )) ;) (if_statement "if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n        local_44 = local_48->X_add_symbol;\n      }" if (parenthesized_expression "((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19)" ( (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)) )) (compound_statement "{\n        local_44 = local_48->X_add_symbol;\n      }" { (expression_statement "local_44 = local_48->X_add_symbol;" (assignment_expression "local_44 = local_48->X_add_symbol" identifier = (field_expression "local_48->X_add_symbol" identifier -> field_identifier)) ;) })) }))) (expression_statement "e->X_op_symbol = (symbolS *)0x0;" (assignment_expression "e->X_op_symbol = (symbolS *)0x0" (field_expression "e->X_op_symbol" identifier -> field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "e->field_0x10 = 3;" (assignment_expression "e->field_0x10 = 3" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "e->X_add_symbol = local_44;" (assignment_expression "e->X_add_symbol = local_44" (field_expression "e->X_add_symbol" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_0004a395:\n    if (this_operand < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (this_operand < 0) {\n      return 1;\n    }" if (parenthesized_expression "(this_operand < 0)" ( (binary_expression "this_operand < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (goto_statement "goto LAB_00049f28;" goto statement_identifier ;)) (case_statement "case 0x3d:\n    psVar12 = e->X_add_symbol;\n    intel_state.has_offset = 1;\n    intel_state.in_offset = intel_state.in_offset + 1;\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      intel_state.in_offset = intel_state.in_offset - 1;\n      iVar10 = 1;\n    }\n    else {\n      intel_state.in_offset = intel_state.in_offset - 1;\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }\n    if ((((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)\n       ) {\n      psVar12 = e->X_add_symbol;\n      local_44 = (symbolS *)iVar10;\n      local_40 = psVar12;\n      local_48 = symbol_get_value_expression(psVar12);\n      paVar11 = S_GET_SEGMENT(psVar12);\n      if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }\n      if (local_48->field_0x10 == '\x03') {\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }\n      e->X_op_symbol = (symbolS *)0x0;\n      e->field_0x10 = 3;\n      e->X_add_symbol = local_40;\n      return (int)local_44;\n    }\n    goto LAB_0004a3f0;" case number_literal : (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "intel_state.has_offset = 1;" (assignment_expression "intel_state.has_offset = 1" (field_expression "intel_state.has_offset" identifier . field_identifier) = number_literal) ;) (expression_statement "intel_state.in_offset = intel_state.in_offset + 1;" (assignment_expression "intel_state.in_offset = intel_state.in_offset + 1" (field_expression "intel_state.in_offset" identifier . field_identifier) = (binary_expression "intel_state.in_offset + 1" (field_expression "intel_state.in_offset" identifier . field_identifier) + number_literal)) ;) (expression_statement "peVar9 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar9 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "iVar10 = i386_intel_simplify(peVar9);" (assignment_expression "iVar10 = i386_intel_simplify(peVar9)" identifier = (call_expression "i386_intel_simplify(peVar9)" identifier (argument_list "(peVar9)" ( identifier )))) ;) (if_statement "if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      intel_state.in_offset = intel_state.in_offset - 1;\n      iVar10 = 1;\n    }\n    else {\n      intel_state.in_offset = intel_state.in_offset - 1;\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n      intel_state.in_offset = intel_state.in_offset - 1;\n      iVar10 = 1;\n    }" { (expression_statement "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));" (call_expression "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" identifier (argument_list "(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( identifier , (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ))) ;) (expression_statement "intel_state.in_offset = intel_state.in_offset - 1;" (assignment_expression "intel_state.in_offset = intel_state.in_offset - 1" (field_expression "intel_state.in_offset" identifier . field_identifier) = (binary_expression "intel_state.in_offset - 1" (field_expression "intel_state.in_offset" identifier . field_identifier) - number_literal)) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      intel_state.in_offset = intel_state.in_offset - 1;\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }" else (compound_statement "{\n      intel_state.in_offset = intel_state.in_offset - 1;\n      if (iVar10 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "intel_state.in_offset = intel_state.in_offset - 1;" (assignment_expression "intel_state.in_offset = intel_state.in_offset - 1" (field_expression "intel_state.in_offset" identifier . field_identifier) = (binary_expression "intel_state.in_offset - 1" (field_expression "intel_state.in_offset" identifier . field_identifier) - number_literal)) ;) (if_statement "if (iVar10 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }))) (if_statement "if ((((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)\n       ) {\n      psVar12 = e->X_add_symbol;\n      local_44 = (symbolS *)iVar10;\n      local_40 = psVar12;\n      local_48 = symbol_get_value_expression(psVar12);\n      paVar11 = S_GET_SEGMENT(psVar12);\n      if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }\n      if (local_48->field_0x10 == '\x03') {\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }\n      e->X_op_symbol = (symbolS *)0x0;\n      e->field_0x10 = 3;\n      e->X_add_symbol = local_40;\n      return (int)local_44;\n    }" if (parenthesized_expression "((((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)\n       )" ( (binary_expression "(((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)) && (local_48 == (expressionS *)intel_state.index)" (parenthesized_expression "(((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base))" ( (binary_expression "((this_operand < 0) || (peVar17 == i.op[this_operand].disps)) &&\n        (local_44 == (symbolS *)intel_state.base)" (parenthesized_expression "((this_operand < 0) || (peVar17 == i.op[this_operand].disps))" ( (binary_expression "(this_operand < 0) || (peVar17 == i.op[this_operand].disps)" (parenthesized_expression "(this_operand < 0)" ( (binary_expression "this_operand < 0" identifier < number_literal) )) || (parenthesized_expression "(peVar17 == i.op[this_operand].disps)" ( (binary_expression "peVar17 == i.op[this_operand].disps" identifier == (field_expression "i.op[this_operand].disps" (subscript_expression "i.op[this_operand]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier)) ))) )) && (parenthesized_expression "(local_44 == (symbolS *)intel_state.base)" ( (binary_expression "local_44 == (symbolS *)intel_state.base" identifier == (cast_expression "(symbolS *)intel_state.base" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.base" identifier . field_identifier))) ))) )) && (parenthesized_expression "(local_48 == (expressionS *)intel_state.index)" ( (binary_expression "local_48 == (expressionS *)intel_state.index" identifier == (cast_expression "(expressionS *)intel_state.index" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.index" identifier . field_identifier))) ))) )) (compound_statement "{\n      psVar12 = e->X_add_symbol;\n      local_44 = (symbolS *)iVar10;\n      local_40 = psVar12;\n      local_48 = symbol_get_value_expression(psVar12);\n      paVar11 = S_GET_SEGMENT(psVar12);\n      if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }\n      if (local_48->field_0x10 == '\x03') {\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }\n      e->X_op_symbol = (symbolS *)0x0;\n      e->field_0x10 = 3;\n      e->X_add_symbol = local_40;\n      return (int)local_44;\n    }" { (expression_statement "psVar12 = e->X_add_symbol;" (assignment_expression "psVar12 = e->X_add_symbol" identifier = (field_expression "e->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "local_44 = (symbolS *)iVar10;" (assignment_expression "local_44 = (symbolS *)iVar10" identifier = (cast_expression "(symbolS *)iVar10" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_40 = psVar12;" (assignment_expression "local_40 = psVar12" identifier = identifier) ;) (expression_statement "local_48 = symbol_get_value_expression(psVar12);" (assignment_expression "local_48 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "paVar11 = S_GET_SEGMENT(psVar12);" (assignment_expression "paVar11 = S_GET_SEGMENT(psVar12)" identifier = (call_expression "S_GET_SEGMENT(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (if_statement "if (paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)) {\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }" if (parenthesized_expression "(paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( (binary_expression "paVar11 == (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" identifier == (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) )))) )) (compound_statement "{\n        uVar14 = (uint)e->X_add_number;\n        iVar10 = *(int *)((int)&e->X_add_number + 4);\n        e->X_add_symbol = local_48->X_add_symbol;\n        e->X_op_symbol = local_48->X_op_symbol;\n        *(int *)&e->X_add_number = (int)local_48->X_add_number;\n        *(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);\n        uVar4 = *(undefined2 *)&local_48->field_0x10;\n        uVar5 = local_48->X_md;\n        poVar1 = &e->X_add_number;\n        oVar6 = *poVar1;\n        *(uint *)poVar1 = (int)*poVar1 + uVar14;\n        *(undefined2 *)&e->field_0x10 = uVar4;\n        e->X_md = uVar5;\n        piVar2 = (int *)((int)&e->X_add_number + 4);\n        *piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);\n        return (int)local_44;\n      }" { (expression_statement "uVar14 = (uint)e->X_add_number;" (assignment_expression "uVar14 = (uint)e->X_add_number" identifier = (cast_expression "(uint)e->X_add_number" ( (type_descriptor "uint" type_identifier) ) (field_expression "e->X_add_number" identifier -> field_identifier))) ;) (expression_statement "iVar10 = *(int *)((int)&e->X_add_number + 4);" (assignment_expression "iVar10 = *(int *)((int)&e->X_add_number + 4)" identifier = (pointer_expression "*(int *)((int)&e->X_add_number + 4)" * (cast_expression "(int *)((int)&e->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "e->X_add_symbol = local_48->X_add_symbol;" (assignment_expression "e->X_add_symbol = local_48->X_add_symbol" (field_expression "e->X_add_symbol" identifier -> field_identifier) = (field_expression "local_48->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "e->X_op_symbol = local_48->X_op_symbol;" (assignment_expression "e->X_op_symbol = local_48->X_op_symbol" (field_expression "e->X_op_symbol" identifier -> field_identifier) = (field_expression "local_48->X_op_symbol" identifier -> field_identifier)) ;) (expression_statement "*(int *)&e->X_add_number = (int)local_48->X_add_number;" (assignment_expression "*(int *)&e->X_add_number = (int)local_48->X_add_number" (pointer_expression "*(int *)&e->X_add_number" * (cast_expression "(int *)&e->X_add_number" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier)))) = (cast_expression "(int)local_48->X_add_number" ( (type_descriptor "int" primitive_type) ) (field_expression "local_48->X_add_number" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4);" (assignment_expression "*(undefined4 *)((int)&e->X_add_number + 4) =\n             *(undefined4 *)((int)&local_48->X_add_number + 4)" (pointer_expression "*(undefined4 *)((int)&e->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&e->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&local_48->X_add_number + 4)" * (cast_expression "(undefined4 *)((int)&local_48->X_add_number + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_48->X_add_number + 4)" ( (binary_expression "(int)&local_48->X_add_number + 4" (cast_expression "(int)&local_48->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_48->X_add_number" & (field_expression "local_48->X_add_number" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined2 *)&local_48->field_0x10;" (assignment_expression "uVar4 = *(undefined2 *)&local_48->field_0x10" identifier = (pointer_expression "*(undefined2 *)&local_48->field_0x10" * (cast_expression "(undefined2 *)&local_48->field_0x10" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_48->field_0x10" & (field_expression "local_48->field_0x10" identifier -> field_identifier))))) ;) (expression_statement "uVar5 = local_48->X_md;" (assignment_expression "uVar5 = local_48->X_md" identifier = (field_expression "local_48->X_md" identifier -> field_identifier)) ;) (expression_statement "poVar1 = &e->X_add_number;" (assignment_expression "poVar1 = &e->X_add_number" identifier = (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) ;) (expression_statement "oVar6 = *poVar1;" (assignment_expression "oVar6 = *poVar1" identifier = (pointer_expression "*poVar1" * identifier)) ;) (expression_statement "*(uint *)poVar1 = (int)*poVar1 + uVar14;" (assignment_expression "*(uint *)poVar1 = (int)*poVar1 + uVar14" (pointer_expression "*(uint *)poVar1" * (cast_expression "(uint *)poVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(int)*poVar1 + uVar14" (cast_expression "(int)*poVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*poVar1" * identifier)) + identifier)) ;) (expression_statement "*(undefined2 *)&e->field_0x10 = uVar4;" (assignment_expression "*(undefined2 *)&e->field_0x10 = uVar4" (pointer_expression "*(undefined2 *)&e->field_0x10" * (cast_expression "(undefined2 *)&e->field_0x10" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&e->field_0x10" & (field_expression "e->field_0x10" identifier -> field_identifier)))) = identifier) ;) (expression_statement "e->X_md = uVar5;" (assignment_expression "e->X_md = uVar5" (field_expression "e->X_md" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar2 = (int *)((int)&e->X_add_number + 4);" (assignment_expression "piVar2 = (int *)((int)&e->X_add_number + 4)" identifier = (cast_expression "(int *)((int)&e->X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&e->X_add_number + 4)" ( (binary_expression "(int)&e->X_add_number + 4" (cast_expression "(int)&e->X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&e->X_add_number" & (field_expression "e->X_add_number" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14);" (assignment_expression "*piVar2 = *piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14)" (pointer_expression "*piVar2" * identifier) = (binary_expression "*piVar2 + iVar10 + (uint)CARRY4((uint)oVar6,uVar14)" (binary_expression "*piVar2 + iVar10" (pointer_expression "*piVar2" * identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)oVar6,uVar14)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)oVar6,uVar14)" identifier (argument_list "((uint)oVar6,uVar14)" ( (cast_expression "(uint)oVar6" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (return_statement "return (int)local_44;" return (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (if_statement "if (local_48->field_0x10 == '\x03') {\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }" if (parenthesized_expression "(local_48->field_0x10 == '\x03')" ( (binary_expression "local_48->field_0x10 == '\x03'" (field_expression "local_48->field_0x10" identifier -> field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n        uVar19 = auStack_4c < (undefined1 *)0xc;\n        uVar21 = &stack0x00000000 == (undefined1 *)0x58;\n        pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);\n        iVar10 = 0x16;\n        pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n        do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);\n        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }\n      }" { (expression_statement "uVar19 = auStack_4c < (undefined1 *)0xc;" (assignment_expression "uVar19 = auStack_4c < (undefined1 *)0xc" identifier = (binary_expression "auStack_4c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar21 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "uVar21 = &stack0x00000000 == (undefined1 *)0x58" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x58" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol);" (assignment_expression "pbVar15 = (byte *)S_GET_NAME(local_48->X_add_symbol)" identifier = (cast_expression "(byte *)S_GET_NAME(local_48->X_add_symbol)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "S_GET_NAME(local_48->X_add_symbol)" identifier (argument_list "(local_48->X_add_symbol)" ( (field_expression "local_48->X_add_symbol" identifier -> field_identifier) ))))) ;) (expression_statement "iVar10 = 0x16;" (assignment_expression "iVar10 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar18 = (byte *)"_GLOBAL_OFFSET_TABLE_"" identifier = (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content "))) ;) (do_statement "do {\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        } while ((bool)uVar21);" do (compound_statement "{\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          uVar19 = *pbVar15 < *pbVar18;\n          uVar21 = *pbVar15 == *pbVar18;\n          pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;\n          pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;\n        }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "uVar19 = *pbVar15 < *pbVar18;" (assignment_expression "uVar19 = *pbVar15 < *pbVar18" identifier = (binary_expression "*pbVar15 < *pbVar18" (pointer_expression "*pbVar15" * identifier) < (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "uVar21 = *pbVar15 == *pbVar18;" (assignment_expression "uVar21 = *pbVar15 == *pbVar18" identifier = (binary_expression "*pbVar15 == *pbVar18" (pointer_expression "*pbVar15" * identifier) == (pointer_expression "*pbVar18" * identifier))) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar22 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar22 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar22 * -2" identifier + (binary_expression "(uint)bVar22 * -2" (cast_expression "(uint)bVar22" ( (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) )) ;) (if_statement "if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {\n          local_40 = local_48->X_add_symbol;\n        }" if (parenthesized_expression "((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19)" ( (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)) )) (compound_statement "{\n          local_40 = local_48->X_add_symbol;\n        }" { (expression_statement "local_40 = local_48->X_add_symbol;" (assignment_expression "local_40 = local_48->X_add_symbol" identifier = (field_expression "local_48->X_add_symbol" identifier -> field_identifier)) ;) })) })) (expression_statement "e->X_op_symbol = (symbolS *)0x0;" (assignment_expression "e->X_op_symbol = (symbolS *)0x0" (field_expression "e->X_op_symbol" identifier -> field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "e->field_0x10 = 3;" (assignment_expression "e->field_0x10 = 3" (field_expression "e->field_0x10" identifier -> field_identifier) = number_literal) ;) (expression_statement "e->X_add_symbol = local_40;" (assignment_expression "e->X_add_symbol = local_40" (field_expression "e->X_add_symbol" identifier -> field_identifier) = identifier) ;) (return_statement "return (int)local_44;" return (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) })) (expression_statement "psVar12 = e->X_op_symbol;" (assignment_expression "psVar12 = e->X_op_symbol" identifier = (field_expression "e->X_op_symbol" identifier -> field_identifier)) ;) (if_statement "if (psVar12 != (symbolS *)0x0) {\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n  }" if (parenthesized_expression "(psVar12 != (symbolS *)0x0)" ( (binary_expression "psVar12 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    peVar9 = symbol_get_value_expression(psVar12);\n    iVar10 = i386_intel_simplify(peVar9);\n    if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "peVar9 = symbol_get_value_expression(psVar12);" (assignment_expression "peVar9 = symbol_get_value_expression(psVar12)" identifier = (call_expression "symbol_get_value_expression(psVar12)" identifier (argument_list "(psVar12)" ( identifier )))) ;) (expression_statement "iVar10 = i386_intel_simplify(peVar9);" (assignment_expression "iVar10 = i386_intel_simplify(peVar9)" identifier = (call_expression "i386_intel_simplify(peVar9)" identifier (argument_list "(peVar9)" ( identifier )))) ;) (if_statement "if (iVar10 == 2) {\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }\n    else if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (compound_statement "{\n      S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));\n    }" { (expression_statement "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180));" (call_expression "S_SET_SEGMENT(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" identifier (argument_list "(psVar12,(segT)(PTR__bfd_std_section_0007ffb0 + 0x180))" ( identifier , (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ))) ;) }) (else_clause "else if (iVar10 == 0) {\n      return 0;\n    }" else (if_statement "if (iVar10 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })))) })) (if_statement "if (e->field_0x10 == '\x13') {\n    local_48 = (expressionS *)intel_state.index;\n    if (this_operand < 0) {\n      return 1;\n    }\n    if (i.op[this_operand].disps != peVar17) goto LAB_0004a3f0;\n  }\n  else if (((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) ||\n          (local_44 != (symbolS *)intel_state.base)) goto LAB_0004a3f0;" if (parenthesized_expression "(e->field_0x10 == '\x13')" ( (binary_expression "e->field_0x10 == '\x13'" (field_expression "e->field_0x10" identifier -> field_identifier) == (char_literal "'\x13'" ' escape_sequence ')) )) (compound_statement "{\n    local_48 = (expressionS *)intel_state.index;\n    if (this_operand < 0) {\n      return 1;\n    }\n    if (i.op[this_operand].disps != peVar17) goto LAB_0004a3f0;\n  }" { (expression_statement "local_48 = (expressionS *)intel_state.index;" (assignment_expression "local_48 = (expressionS *)intel_state.index" identifier = (cast_expression "(expressionS *)intel_state.index" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.index" identifier . field_identifier))) ;) (if_statement "if (this_operand < 0) {\n      return 1;\n    }" if (parenthesized_expression "(this_operand < 0)" ( (binary_expression "this_operand < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (i.op[this_operand].disps != peVar17) goto LAB_0004a3f0;" if (parenthesized_expression "(i.op[this_operand].disps != peVar17)" ( (binary_expression "i.op[this_operand].disps != peVar17" (field_expression "i.op[this_operand].disps" (subscript_expression "i.op[this_operand]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier) != identifier) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) }) (else_clause "else if (((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) ||\n          (local_44 != (symbolS *)intel_state.base)) goto LAB_0004a3f0;" else (if_statement "if (((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) ||\n          (local_44 != (symbolS *)intel_state.base)) goto LAB_0004a3f0;" if (parenthesized_expression "(((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) ||\n          (local_44 != (symbolS *)intel_state.base))" ( (binary_expression "((-1 < this_operand) && (peVar17 != i.op[this_operand].disps)) ||\n          (local_44 != (symbolS *)intel_state.base)" (parenthesized_expression "((-1 < this_operand) && (peVar17 != i.op[this_operand].disps))" ( (binary_expression "(-1 < this_operand) && (peVar17 != i.op[this_operand].disps)" (parenthesized_expression "(-1 < this_operand)" ( (binary_expression "-1 < this_operand" number_literal < identifier) )) && (parenthesized_expression "(peVar17 != i.op[this_operand].disps)" ( (binary_expression "peVar17 != i.op[this_operand].disps" identifier != (field_expression "i.op[this_operand].disps" (subscript_expression "i.op[this_operand]" (field_expression "i.op" identifier . field_identifier) [ identifier ]) . field_identifier)) ))) )) || (parenthesized_expression "(local_44 != (symbolS *)intel_state.base)" ( (binary_expression "local_44 != (symbolS *)intel_state.base" identifier != (cast_expression "(symbolS *)intel_state.base" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.base" identifier . field_identifier))) ))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)))) (expression_statement "iVar16 = this_operand;" (assignment_expression "iVar16 = this_operand" identifier = identifier) ;) (if_statement "if (local_48 == (expressionS *)intel_state.index) {\nLAB_00049f18:\n    if ((-1 < iVar16) && (e->field_0x10 == '\x03')) {\nLAB_00049f28:\n      if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }\n    }\n    return 1;\n  }" if (parenthesized_expression "(local_48 == (expressionS *)intel_state.index)" ( (binary_expression "local_48 == (expressionS *)intel_state.index" identifier == (cast_expression "(expressionS *)intel_state.index" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "intel_state.index" identifier . field_identifier))) )) (compound_statement "{\nLAB_00049f18:\n    if ((-1 < iVar16) && (e->field_0x10 == '\x03')) {\nLAB_00049f28:\n      if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }\n    }\n    return 1;\n  }" { (labeled_statement "LAB_00049f18:\n    if ((-1 < iVar16) && (e->field_0x10 == '\x03')) {\nLAB_00049f28:\n      if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }\n    }" statement_identifier : (if_statement "if ((-1 < iVar16) && (e->field_0x10 == '\x03')) {\nLAB_00049f28:\n      if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }\n    }" if (parenthesized_expression "((-1 < iVar16) && (e->field_0x10 == '\x03'))" ( (binary_expression "(-1 < iVar16) && (e->field_0x10 == '\x03')" (parenthesized_expression "(-1 < iVar16)" ( (binary_expression "-1 < iVar16" number_literal < identifier) )) && (parenthesized_expression "(e->field_0x10 == '\x03')" ( (binary_expression "e->field_0x10 == '\x03'" (field_expression "e->field_0x10" identifier -> field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00049f28:\n      if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }\n    }" { (labeled_statement "LAB_00049f28:\n      if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }" statement_identifier : (if_statement "if ((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))) {\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }" if (parenthesized_expression "((intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11))))" ( (binary_expression "(intel_state.in_offset == 0) &&\n         (((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))" (parenthesized_expression "(intel_state.in_offset == 0)" ( (binary_expression "intel_state.in_offset == 0" (field_expression "intel_state.in_offset" identifier . field_identifier) == number_literal) )) && (parenthesized_expression "(((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)))" ( (parenthesized_expression "((paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11))" ( (binary_expression "(paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)) &&\n          (expr_section != paVar11)" (parenthesized_expression "(paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11))" ( (comma_expression "paVar11 = S_GET_SEGMENT(e->X_add_symbol),\n           paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)" (assignment_expression "paVar11 = S_GET_SEGMENT(e->X_add_symbol)" identifier = (call_expression "S_GET_SEGMENT(e->X_add_symbol)" identifier (argument_list "(e->X_add_symbol)" ( (field_expression "e->X_add_symbol" identifier -> field_identifier) )))) , (binary_expression "paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180) && (reg_section != paVar11)" (binary_expression "paVar11 != (segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" identifier != (call_expression "(segT)(PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) )))) && (parenthesized_expression "(reg_section != paVar11)" ( (binary_expression "reg_section != paVar11" identifier != identifier) )))) )) && (parenthesized_expression "(expr_section != paVar11)" ( (binary_expression "expr_section != paVar11" identifier != identifier) ))) )) ))) )) (compound_statement "{\n        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;\n      }" { (expression_statement "intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;" (assignment_expression "intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1" (field_expression "intel_state.is_mem" identifier . field_identifier) = (binary_expression "intel_state.is_mem | (intel_state.in_bracket != 0) + 1" (field_expression "intel_state.is_mem" identifier . field_identifier) | (binary_expression "(intel_state.in_bracket != 0) + 1" (parenthesized_expression "(intel_state.in_bracket != 0)" ( (binary_expression "intel_state.in_bracket != 0" (field_expression "intel_state.in_bracket" identifier . field_identifier) != number_literal) )) + number_literal))) ;) }))) }))) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_0004a3f0:\n  pcVar13 = (char *)dcgettext(0,"invalid use of register",5);" statement_identifier : (expression_statement "pcVar13 = (char *)dcgettext(0,"invalid use of register",5);" (assignment_expression "pcVar13 = (char *)dcgettext(0,"invalid use of register",5)" identifier = (cast_expression "(char *)dcgettext(0,"invalid use of register",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"invalid use of register",5)" identifier (argument_list "(0,"invalid use of register",5)" ( number_literal , (string_literal ""invalid use of register"" " string_content ") , number_literal ))))) ;)) (expression_statement "as_bad(pcVar13);" (call_expression "as_bad(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int __regparm3 FUN_00049de0(int *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  int *piVar11;\n  byte *pbVar12;\n  char *__s1;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_4c [4];\n  int *local_48;\n  int local_44;\n  int iStack_40;\n  int iStack_30;\n  int iStack_2c;\n  undefined1 uStack_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar13 = 0;\n  uStack_14 = 0x49deb;\n  if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }\n  if (DAT_00088ef4 == 0) {\n    return 1;\n  }\n  local_44 = DAT_00088e64;\n  local_48 = DAT_00088e68;\n  bVar4 = *(byte *)(param_1 + 4);\n  uVar5 = (uint)bVar4;\n  if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }\n  iVar8 = *param_1;\n  if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }\n  if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }\n  iVar8 = param_1[1];\n  if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }\n  if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;\n  iVar6 = DAT_00080558;\n  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  goto code_r0x00049f18;\ncode_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }\ncode_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);\n  if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }\n  iVar13 = *param_1;\n  FUN_0003b610(iVar13);\n  iVar8 = FUN_00049de0();\n  puVar7 = PTR__bfd_std_section_0007ffb0;\n  if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }\n  iVar13 = *param_1;\n  local_44 = iVar13;\n  local_48 = (int *)FUN_0003b610(iVar13);\n  puVar10 = (undefined *)FUN_00038ac0(iVar13);\n  if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }\ncode_r0x0004a4cf:\n  uVar2 = param_1[2];\n  iVar13 = param_1[3];\n  *param_1 = *local_48;\n  param_1[1] = local_48[1];\n  param_1[2] = local_48[2];\n  param_1[3] = local_48[3];\n  iVar8 = local_48[4];\n  puVar1 = (uint *)(param_1 + 2);\n  uVar5 = *puVar1;\n  *puVar1 = *puVar1 + uVar2;\n  iVar6 = DAT_00080558;\n  param_1[4] = iVar8;\n  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\ncode_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }\n  if ((char)param_1[4] != '\x03') {\n    return 1;\n  }\ncode_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }\n  return 1;\n}\n\n" (function_definition "int __regparm3 FUN_00049de0(int *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  int *piVar11;\n  byte *pbVar12;\n  char *__s1;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_4c [4];\n  int *local_48;\n  int local_44;\n  int iStack_40;\n  int iStack_30;\n  int iStack_2c;\n  undefined1 uStack_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar13 = 0;\n  uStack_14 = 0x49deb;\n  if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }\n  if (DAT_00088ef4 == 0) {\n    return 1;\n  }\n  local_44 = DAT_00088e64;\n  local_48 = DAT_00088e68;\n  bVar4 = *(byte *)(param_1 + 4);\n  uVar5 = (uint)bVar4;\n  if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }\n  iVar8 = *param_1;\n  if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }\n  if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }\n  iVar8 = param_1[1];\n  if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }\n  if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;\n  iVar6 = DAT_00080558;\n  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  goto code_r0x00049f18;\ncode_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }\ncode_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);\n  if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }\n  iVar13 = *param_1;\n  FUN_0003b610(iVar13);\n  iVar8 = FUN_00049de0();\n  puVar7 = PTR__bfd_std_section_0007ffb0;\n  if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }\n  iVar13 = *param_1;\n  local_44 = iVar13;\n  local_48 = (int *)FUN_0003b610(iVar13);\n  puVar10 = (undefined *)FUN_00038ac0(iVar13);\n  if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }\ncode_r0x0004a4cf:\n  uVar2 = param_1[2];\n  iVar13 = param_1[3];\n  *param_1 = *local_48;\n  param_1[1] = local_48[1];\n  param_1[2] = local_48[2];\n  param_1[3] = local_48[3];\n  iVar8 = local_48[4];\n  puVar1 = (uint *)(param_1 + 2);\n  uVar5 = *puVar1;\n  *puVar1 = *puVar1 + uVar2;\n  iVar6 = DAT_00080558;\n  param_1[4] = iVar8;\n  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\ncode_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }\n  if ((char)param_1[4] != '\x03') {\n    return 1;\n  }\ncode_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }\n  return 1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00049de0(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  int *piVar11;\n  byte *pbVar12;\n  char *__s1;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_4c [4];\n  int *local_48;\n  int local_44;\n  int iStack_40;\n  int iStack_30;\n  int iStack_2c;\n  undefined1 uStack_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar13 = 0;\n  uStack_14 = 0x49deb;\n  if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }\n  if (DAT_00088ef4 == 0) {\n    return 1;\n  }\n  local_44 = DAT_00088e64;\n  local_48 = DAT_00088e68;\n  bVar4 = *(byte *)(param_1 + 4);\n  uVar5 = (uint)bVar4;\n  if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }\n  iVar8 = *param_1;\n  if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }\n  if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }\n  iVar8 = param_1[1];\n  if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }\n  if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;\n  iVar6 = DAT_00080558;\n  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  goto code_r0x00049f18;\ncode_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }\ncode_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);\n  if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }\n  iVar13 = *param_1;\n  FUN_0003b610(iVar13);\n  iVar8 = FUN_00049de0();\n  puVar7 = PTR__bfd_std_section_0007ffb0;\n  if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }\n  iVar13 = *param_1;\n  local_44 = iVar13;\n  local_48 = (int *)FUN_0003b610(iVar13);\n  puVar10 = (undefined *)FUN_00038ac0(iVar13);\n  if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }\ncode_r0x0004a4cf:\n  uVar2 = param_1[2];\n  iVar13 = param_1[3];\n  *param_1 = *local_48;\n  param_1[1] = local_48[1];\n  param_1[2] = local_48[2];\n  param_1[3] = local_48[3];\n  iVar8 = local_48[4];\n  puVar1 = (uint *)(param_1 + 2);\n  uVar5 = *puVar1;\n  *puVar1 = *puVar1 + uVar2;\n  iVar6 = DAT_00080558;\n  param_1[4] = iVar8;\n  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\ncode_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }\n  if ((char)param_1[4] != '\x03') {\n    return 1;\n  }\ncode_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }\n  return 1;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ulonglong uVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "char *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "undefined1 uVar17;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "undefined1 auStack_4c [4];" type_identifier (array_declarator "auStack_4c [4]" identifier [ number_literal ]) ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int iStack_40;" primitive_type identifier ;) (declaration "int iStack_30;" primitive_type identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (declaration "undefined1 uStack_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x49deb;" (assignment_expression "uStack_14 = 0x49deb" identifier = number_literal) ;) (if_statement "if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }" if (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) (compound_statement "{\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }" { (expression_statement "iVar13 = (&DAT_00089038)[DAT_00080558];" (assignment_expression "iVar13 = (&DAT_00089038)[DAT_00080558]" identifier = (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ;) })) (if_statement "if (DAT_00088ef4 == 0) {\n    return 1;\n  }" if (parenthesized_expression "(DAT_00088ef4 == 0)" ( (binary_expression "DAT_00088ef4 == 0" identifier == number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_44 = DAT_00088e64;" (assignment_expression "local_44 = DAT_00088e64" identifier = identifier) ;) (expression_statement "local_48 = DAT_00088e68;" (assignment_expression "local_48 = DAT_00088e68" identifier = identifier) ;) (expression_statement "bVar4 = *(byte *)(param_1 + 4);" (assignment_expression "bVar4 = *(byte *)(param_1 + 4)" identifier = (pointer_expression "*(byte *)(param_1 + 4)" * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = (uint)bVar4;" (assignment_expression "uVar5 = (uint)bVar4" identifier = (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }" if (parenthesized_expression "(bVar4 < 0x3e)" ( (binary_expression "bVar4 < 0x3e" identifier < number_literal) )) (compound_statement "{\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }" { (expression_statement "iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);" (assignment_expression "iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4)" identifier = (pointer_expression "*(int *)(&DAT_00064b68 + uVar5 * 4)" * (cast_expression "(int *)(&DAT_00064b68 + uVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00064b68 + uVar5 * 4)" ( (binary_expression "&DAT_00064b68 + uVar5 * 4" (pointer_expression "&DAT_00064b68" & identifier) + (binary_expression "uVar5 * 4" identifier * number_literal)) ))))) ;) (switch_statement "switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }" switch (parenthesized_expression "(uVar5)" ( identifier )) (compound_statement "{\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }" { (case_statement "default:\n      break;" default : (break_statement "break;" break ;)) (case_statement "case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;" case number_literal : (if_statement "if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }" if (parenthesized_expression "(*(short *)((int)param_1 + 0x12) != 0)" ( (binary_expression "*(short *)((int)param_1 + 0x12) != 0" (pointer_expression "*(short *)((int)param_1 + 0x12)" * (cast_expression "(short *)((int)param_1 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }" { (expression_statement "iVar13 = FUN_00041d50();" (assignment_expression "iVar13 = FUN_00041d50()" identifier = (call_expression "FUN_00041d50()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar13;" return identifier ;) })) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 != 0) goto LAB_00049e58;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00049e58;" goto statement_identifier ;)) (if_statement "if (-1 < DAT_00080558) goto LAB_0004a3ce;" if (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) (goto_statement "goto LAB_0004a3ce;" goto statement_identifier ;)) (goto_statement "goto LAB_0004a47d;" goto statement_identifier ;)) (case_statement "case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;" case number_literal : (expression_statement "iVar13 = FUN_00041d50();" (assignment_expression "iVar13 = FUN_00041d50()" identifier = (call_expression "FUN_00041d50()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar13 != 2) {\n        return iVar13;\n      }" if (parenthesized_expression "(iVar13 != 2)" ( (binary_expression "iVar13 != 2" identifier != number_literal) )) (compound_statement "{\n        return iVar13;\n      }" { (return_statement "return iVar13;" return identifier ;) })) (if_statement "if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }" if (parenthesized_expression "(-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2]))" ( (binary_expression "-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])" (unary_expression "-param_1[3]" - (subscript_expression "param_1[3]" identifier [ number_literal ])) < (cast_expression "(int)(uint)(0xfffe < (uint)param_1[2])" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(0xfffe < (uint)param_1[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffe < (uint)param_1[2])" ( (binary_expression "0xfffe < (uint)param_1[2]" number_literal < (cast_expression "(uint)param_1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ))))) )) (compound_statement "{\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }" { (expression_statement "FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;" (call_expression "FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)" identifier (argument_list "("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)" ( (string_literal ""../../gas/config/tc-i386-intel.c"" " string_content ") , number_literal , (string_literal ""i386_intel_simplify"" " string_content ") , (binary_expression "iVar8 + 0x80000" identifier + number_literal) ))) ;) })) (expression_statement "*(undefined1 *)(param_1 + 4) = 2;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 2" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;" (assignment_expression "*(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1" (pointer_expression "*(short *)((int)param_1 + 0x12)" * (cast_expression "(short *)((int)param_1 + 0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(short)param_1[2] + 1" (cast_expression "(short)param_1[2]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "param_1[2]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return 2;" return number_literal ;)) (case_statement "case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;" case number_literal : (if_statement "if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }" if (parenthesized_expression "(DAT_00080558 < 0)" ( (binary_expression "DAT_00080558 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }" { (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 == 0) goto LAB_0004a47d;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a47d;" goto statement_identifier ;)) (goto_statement "goto LAB_00049e58;" goto statement_identifier ;) })) (if_statement "if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }" if (parenthesized_expression "(DAT_00088e54 == 0)" ( (binary_expression "DAT_00088e54 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }" { (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 == 0) goto LAB_0004a3ce;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004a3ce;" goto statement_identifier ;)) (goto_statement "goto LAB_00049e58;" goto statement_identifier ;) })) (if_statement "if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }" if (parenthesized_expression "(DAT_00088e58 == 0)" ( (binary_expression "DAT_00088e58 == 0" identifier == number_literal) )) (compound_statement "{\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }" { (expression_statement "uRam00088e6c = 1;" (assignment_expression "uRam00088e6c = 1" identifier = number_literal) ;) (expression_statement "iRam00088e70 = 0;" (assignment_expression "iRam00088e70 = 0" identifier = number_literal) ;) })) (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "DAT_00088e58 = DAT_00088e58 + 1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + 1" identifier = (binary_expression "DAT_00088e58 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "iVar8 = FUN_00049de0();" (assignment_expression "iVar8 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }" { (expression_statement "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (if_statement "if (local_48 == (int *)0x0) goto code_r0x0004a136;" if (parenthesized_expression "(local_48 == (int *)0x0)" ( (binary_expression "local_48 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x0004a136;" goto statement_identifier ;)) (labeled_statement "code_r0x0004a795:\n        iVar13 = param_1[1];" statement_identifier : (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (expression_statement "piVar11 = (int *)0x0;" (assignment_expression "piVar11 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }" else (compound_statement "{\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }" { (if_statement "if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }" if (parenthesized_expression "((iVar8 == 0) || (local_48 != (int *)0x0))" ( (binary_expression "(iVar8 == 0) || (local_48 != (int *)0x0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_48 != (int *)0x0)" ( (binary_expression "local_48 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }" { (if_statement "if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }" { (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" identifier = (binary_expression "DAT_00088e58 + -1" identifier + number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto code_r0x0004a795;" goto statement_identifier ;) })) (labeled_statement "code_r0x0004a136:\n        iVar13 = param_1[1];" statement_identifier : (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (expression_statement "piVar11 = DAT_00088e68;" (assignment_expression "piVar11 = DAT_00088e68" identifier = identifier) ;) (if_statement "if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }" if (parenthesized_expression "(DAT_00088e68 != (int *)0x0)" ( (binary_expression "DAT_00088e68 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }" { (expression_statement "piVar11 = (int *)FUN_0003b610(iVar13);" (assignment_expression "piVar11 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "bVar16 = piVar11 == (int *)0x0;" (assignment_expression "bVar16 = piVar11 == (int *)0x0" identifier = (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) }))) (expression_statement "local_44 = iVar13;" (assignment_expression "local_44 = iVar13" identifier = identifier) ;) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "iVar13 = FUN_00049de0();" (assignment_expression "iVar13 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }" if (parenthesized_expression "(iVar13 == 2)" ( (binary_expression "iVar13 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }" { (expression_statement "FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(local_44,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }" else (compound_statement "{\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }" { (expression_statement "bVar16 = (bool)(bVar16 & iVar13 != 0);" (assignment_expression "bVar16 = (bool)(bVar16 & iVar13 != 0)" identifier = (cast_expression "(bool)(bVar16 & iVar13 != 0)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar16 & iVar13 != 0)" ( (binary_expression "bVar16 & iVar13 != 0" identifier & (binary_expression "iVar13 != 0" identifier != number_literal)) )))) ;) (expression_statement "iVar8 = iVar13;" (assignment_expression "iVar8 = iVar13" identifier = identifier) ;) }))) (if_statement "if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }" { (if_statement "if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" if (parenthesized_expression "(((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0))" ( (binary_expression "((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)" (parenthesized_expression "((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0))" ( (binary_expression "(local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)" (parenthesized_expression "(local_48 == (int *)0x0)" ( (binary_expression "local_48 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(DAT_00088e68 != (int *)0x0)" ( (binary_expression "DAT_00088e68 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)" ( (comma_expression "piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0" (assignment_expression "piVar11 = (int *)FUN_0003b610(*param_1)" identifier = (cast_expression "(int *)FUN_0003b610(*param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))))) , (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" { (labeled_statement "code_r0x0004a69c:\n          FUN_00021620(piVar11);" statement_identifier : (expression_statement "FUN_00021620(piVar11);" (call_expression "FUN_00021620(piVar11)" identifier (argument_list "(piVar11)" ( identifier ))) ;)) (if_statement "if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }" if (parenthesized_expression "(((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0))" ( (binary_expression "((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)" (parenthesized_expression "((char)piVar11[4] == '\x02')" ( (binary_expression "(char)piVar11[4] == '\x02'" (cast_expression "(char)piVar11[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar11[4]" identifier [ number_literal ])) == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)" ( (binary_expression "(*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0" (parenthesized_expression "(*(byte *)((int)DAT_00088e68 + 7) & 0x40)" ( (binary_expression "*(byte *)((int)DAT_00088e68 + 7) & 0x40" (pointer_expression "*(byte *)((int)DAT_00088e68 + 7)" * (cast_expression "(byte *)((int)DAT_00088e68 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_00088e68 + 7)" ( (binary_expression "(int)DAT_00088e68 + 7" (cast_expression "(int)DAT_00088e68" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }" { (expression_statement "uVar5 = piVar11[2];" (assignment_expression "uVar5 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = piVar11[3];" (assignment_expression "iVar13 = piVar11[3]" identifier = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }" else (compound_statement "{\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }" { (expression_statement "piVar11[2] = 0;" (assignment_expression "piVar11[2] = 0" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "piVar11[3] = 0;" (assignment_expression "piVar11[3] = 0" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "iVar13 = iVar13 * uRam00088e6c;" (assignment_expression "iVar13 = iVar13 * uRam00088e6c" identifier = (binary_expression "iVar13 * uRam00088e6c" identifier * identifier)) ;) (expression_statement "uVar3 = (ulonglong)uRam00088e6c;" (assignment_expression "uVar3 = (ulonglong)uRam00088e6c" identifier = (cast_expression "(ulonglong)uRam00088e6c" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (expression_statement "uRam00088e6c = (uint)(uVar5 * uVar3);" (assignment_expression "uRam00088e6c = (uint)(uVar5 * uVar3)" identifier = (call_expression "(uint)(uVar5 * uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 * uVar3)" ( (binary_expression "uVar5 * uVar3" identifier * identifier) )))) ;) (expression_statement "iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;" (assignment_expression "iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13" identifier = (binary_expression "(int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13" (binary_expression "(int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5" (cast_expression "(int)(uVar5 * uVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 * uVar3 >> 0x20)" ( (binary_expression "uVar5 * uVar3 >> 0x20" (binary_expression "uVar5 * uVar3" identifier * identifier) >> number_literal) ))) + (binary_expression "iRam00088e70 * uVar5" identifier * identifier)) + identifier)) ;) (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" identifier = (binary_expression "DAT_00088e58 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" else (compound_statement "{\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" { (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" identifier = (binary_expression "DAT_00088e58 + -1" identifier + number_literal)) ;) }))) }) (else_clause "else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" else (compound_statement "{\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" { (if_statement "if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;" if (parenthesized_expression "((piVar11 != (int *)0x0) && (iVar13 != 0))" ( (binary_expression "(piVar11 != (int *)0x0) && (iVar13 != 0)" (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) ))) )) (goto_statement "goto code_r0x0004a69c;" goto statement_identifier ;)) (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" identifier = (binary_expression "DAT_00088e58 + -1" identifier + number_literal)) ;) (if_statement "if (iVar8 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" identifier = identifier) ;) (if_statement "if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }" if (parenthesized_expression "(DAT_00088e58 == 0)" ( (binary_expression "DAT_00088e58 == 0" identifier == number_literal) )) (compound_statement "{\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }" { (if_statement "if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" if (parenthesized_expression "(uRam00088e6c == 2 && iRam00088e70 == 0)" ( (binary_expression "uRam00088e6c == 2 && iRam00088e70 == 0" (binary_expression "uRam00088e6c == 2" identifier == number_literal) && (binary_expression "iRam00088e70 == 0" identifier == number_literal)) )) (compound_statement "{\n          DAT_0008907c = 1;\n        }" { (expression_statement "DAT_0008907c = 1;" (assignment_expression "DAT_0008907c = 1" identifier = number_literal) ;) }) (else_clause "else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" else (if_statement "if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" if (parenthesized_expression "(-iRam00088e70 < (int)(uint)(2 < uRam00088e6c))" ( (binary_expression "-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)" (unary_expression "-iRam00088e70" - identifier) < (cast_expression "(int)(uint)(2 < uRam00088e6c)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(2 < uRam00088e6c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(2 < uRam00088e6c)" ( (binary_expression "2 < uRam00088e6c" number_literal < identifier) ))))) )) (compound_statement "{\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }" { (if_statement "if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }" if (parenthesized_expression "(uRam00088e6c == 4 && iRam00088e70 == 0)" ( (binary_expression "uRam00088e6c == 4 && iRam00088e70 == 0" (binary_expression "uRam00088e6c == 4" identifier == number_literal) && (binary_expression "iRam00088e70 == 0" identifier == number_literal)) )) (compound_statement "{\n            DAT_0008907c = 2;\n          }" { (expression_statement "DAT_0008907c = 2;" (assignment_expression "DAT_0008907c = 2" identifier = number_literal) ;) }) (else_clause "else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }" else (compound_statement "{\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }" { (if_statement "if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;" if (parenthesized_expression "(iRam00088e70 != 0 || uRam00088e6c != 8)" ( (binary_expression "iRam00088e70 != 0 || uRam00088e6c != 8" (binary_expression "iRam00088e70 != 0" identifier != number_literal) || (binary_expression "uRam00088e6c != 8" identifier != number_literal)) )) (goto_statement "goto code_r0x0004a8b9;" goto statement_identifier ;)) (expression_statement "DAT_0008907c = 3;" (assignment_expression "DAT_0008907c = 3" identifier = number_literal) ;) }))) }) (else_clause "else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" else (if_statement "if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" if (parenthesized_expression "(iRam00088e70 == 0 && uRam00088e6c == 1)" ( (binary_expression "iRam00088e70 == 0 && uRam00088e6c == 1" (binary_expression "iRam00088e70 == 0" identifier == number_literal) && (binary_expression "uRam00088e6c == 1" identifier == number_literal)) )) (compound_statement "{\n          DAT_0008907c = 0;\n        }" { (expression_statement "DAT_0008907c = 0;" (assignment_expression "DAT_0008907c = 0" identifier = number_literal) ;) }) (else_clause "else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" else (compound_statement "{\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" { (labeled_statement "code_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);" statement_identifier : (expression_statement "DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);" (assignment_expression "DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0)" identifier = (cast_expression "(int *)(PTR_i386_regtab_0007ff5c + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_i386_regtab_0007ff5c + 0x2d0)" ( (binary_expression "PTR_i386_regtab_0007ff5c + 0x2d0" identifier + number_literal) )))) ;)) }))))))) })) (goto_statement "goto code_r0x00049f18;" goto statement_identifier ;)) (case_statement "case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;" case number_literal : (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }" { (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) }) (else_clause "else if (iVar6 == 0) {\n          return 0;\n        }" else (if_statement "if (iVar6 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })))) (if_statement "if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;" if (parenthesized_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558]))" ( (binary_expression "(-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) && (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) })) (if_statement "if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }" if (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }" { (expression_statement "DAT_00088e54 = DAT_00088e54 + 1;" (assignment_expression "DAT_00088e54 = DAT_00088e54 + 1" identifier = (binary_expression "DAT_00088e54 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "iVar8 = FUN_00049de0();" (assignment_expression "iVar8 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }" { (expression_statement "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (if_statement "if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" if (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" { (expression_statement "DAT_00088e54 = DAT_00088e54 + -1;" (assignment_expression "DAT_00088e54 = DAT_00088e54 + -1" identifier = (binary_expression "DAT_00088e54 + -1" identifier + number_literal)) ;) })) }) (else_clause "else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" else (compound_statement "{\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" { (if_statement "if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" if (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" { (expression_statement "DAT_00088e54 = DAT_00088e54 + -1;" (assignment_expression "DAT_00088e54 = DAT_00088e54 + -1" identifier = (binary_expression "DAT_00088e54 + -1" identifier + number_literal)) ;) })) (if_statement "if (iVar8 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }))) (if_statement "if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }" if (parenthesized_expression "(*param_1 != 0)" ( (binary_expression "*param_1 != 0" (pointer_expression "*param_1" * identifier) != number_literal) )) (compound_statement "{\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }" { (expression_statement "*(undefined1 *)(param_1 + 4) = 0x13;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0x13" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "piVar11 = (int *)FUN_0003b610(iVar13);" (assignment_expression "piVar11 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "puVar7 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(iVar13)" identifier = (cast_expression "(undefined *)FUN_00038ac0(iVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (if_statement "if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }" if (parenthesized_expression "(puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180" identifier == (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal)) )) (compound_statement "{\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }" { (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = *piVar11;" (assignment_expression "*param_1 = *piVar11" (pointer_expression "*param_1" * identifier) = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "param_1[1] = piVar11[1];" (assignment_expression "param_1[1] = piVar11[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = piVar11[2];" (assignment_expression "param_1[2] = piVar11[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = piVar11[3];" (assignment_expression "param_1[3] = piVar11[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar11[4];" (assignment_expression "iVar8 = piVar11[4]" identifier = (subscript_expression "piVar11[4]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (uint *)(param_1 + 2);" (assignment_expression "puVar1 = (uint *)(param_1 + 2)" identifier = (cast_expression "(uint *)(param_1 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + uVar2;" (assignment_expression "*puVar1 = *puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) + identifier)) ;) (expression_statement "param_1[4] = iVar8;" (assignment_expression "param_1[4] = iVar8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);" (assignment_expression "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (binary_expression "param_1[3] + iVar13" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier) + (cast_expression "(uint)CARRY4(uVar5,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar2)" identifier (argument_list "(uVar5,uVar2)" ( identifier , identifier )))))) ;) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" identifier = identifier) ;) (goto_statement "goto code_r0x00049f18;" goto statement_identifier ;) })) (if_statement "if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }" if (parenthesized_expression "((char)piVar11[4] == '\x03')" ( (binary_expression "(char)piVar11[4] == '\x03'" (cast_expression "(char)piVar11[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar11[4]" identifier [ number_literal ])) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }" { (expression_statement "__s1 = (char *)FUN_00038a80(*piVar11);" (assignment_expression "__s1 = (char *)FUN_00038a80(*piVar11)" identifier = (cast_expression "(char *)FUN_00038a80(*piVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038a80(*piVar11)" identifier (argument_list "(*piVar11)" ( (pointer_expression "*piVar11" * identifier) ))))) ;) (expression_statement "iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");" (assignment_expression "iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_")" identifier = (call_expression "strcmp(__s1,"_GLOBAL_OFFSET_TABLE_")" identifier (argument_list "(__s1,"_GLOBAL_OFFSET_TABLE_")" ( identifier , (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content ") )))) ;) (if_statement "if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar13 = *piVar11;\n        }" { (expression_statement "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) })) })) (expression_statement "*param_1 = iVar13;" (assignment_expression "*param_1 = iVar13" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 3" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto code_r0x0004a395;" goto statement_identifier ;)) (case_statement "case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;" case number_literal : (expression_statement "iVar8 = FUN_0003b610(param_1[1]);" (assignment_expression "iVar8 = FUN_0003b610(param_1[1])" identifier = (call_expression "FUN_0003b610(param_1[1])" identifier (argument_list "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;" if (parenthesized_expression "(*(char *)(iVar8 + 0x10) == '\x05')" ( (binary_expression "*(char *)(iVar8 + 0x10) == '\x05'" (pointer_expression "*(char *)(iVar8 + 0x10)" * (cast_expression "(char *)(iVar8 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (expression_statement "iVar8 = param_1[1];" (assignment_expression "iVar8 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) }) (else_clause "else if (iVar6 == 0) {\n        return 0;\n      }" else (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })))) (if_statement "if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;" if (parenthesized_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558]))" ( (binary_expression "(-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) && (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (expression_statement "iVar13 = DAT_00088e74;" (assignment_expression "iVar13 = DAT_00088e74" identifier = identifier) ;) (if_statement "if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }" if (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }" { (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }" if (parenthesized_expression "(DAT_00088e74 != 0)" ( (binary_expression "DAT_00088e74 != 0" identifier != number_literal) )) (compound_statement "{\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }" { (expression_statement "uStack_20 = 0x1f;" (assignment_expression "uStack_20 = 0x1f" identifier = number_literal) ;) (expression_statement "iStack_30 = *param_1;" (assignment_expression "iStack_30 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iStack_2c = DAT_00088e74;" (assignment_expression "iStack_2c = DAT_00088e74" identifier = identifier) ;) (expression_statement "iVar13 = FUN_00021220(&iStack_30);" (assignment_expression "iVar13 = FUN_00021220(&iStack_30)" identifier = (call_expression "FUN_00021220(&iStack_30)" identifier (argument_list "(&iStack_30)" ( (pointer_expression "&iStack_30" & identifier) )))) ;) })) })) (expression_statement "DAT_00088e74 = iVar13;" (assignment_expression "DAT_00088e74 = iVar13" identifier = identifier) ;) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_44 = iVar13;" (assignment_expression "local_44 = iVar13" identifier = identifier) ;) (expression_statement "local_48 = (int *)FUN_0003b610(iVar13);" (assignment_expression "local_48 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "puVar7 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(iVar13)" identifier = (cast_expression "(undefined *)FUN_00038ac0(iVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (if_statement "if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;" if (parenthesized_expression "(puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180" identifier == (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal)) )) (goto_statement "goto code_r0x0004a4cf;" goto statement_identifier ;)) (goto_statement "goto code_r0x0004a379;" goto statement_identifier ;)) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:" case number_literal :) (case_statement "case 0x3a:" case number_literal :) (case_statement "case 0x3b:\n      goto code_r0x00049f90;" case number_literal : (goto_statement "goto code_r0x00049f90;" goto statement_identifier ;)) (case_statement "case 0x3c:\n      goto code_r0x00049fa0;" case number_literal : (goto_statement "goto code_r0x00049fa0;" goto statement_identifier ;)) (case_statement "case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;" case number_literal : (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "DAT_00088e4c = 1;" (assignment_expression "DAT_00088e4c = 1" identifier = number_literal) ;) (expression_statement "DAT_00088e50 = DAT_00088e50 + 1;" (assignment_expression "DAT_00088e50 = DAT_00088e50 + 1" identifier = (binary_expression "DAT_00088e50 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (expression_statement "DAT_00088e50 = DAT_00088e50 + -1;" (assignment_expression "DAT_00088e50 = DAT_00088e50 + -1" identifier = (binary_expression "DAT_00088e50 + -1" identifier + number_literal)) ;) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }" else (compound_statement "{\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }" { (expression_statement "DAT_00088e50 = DAT_00088e50 + -1;" (assignment_expression "DAT_00088e50 = DAT_00088e50 + -1" identifier = (binary_expression "DAT_00088e50 + -1" identifier + number_literal)) ;) (if_statement "if (iVar6 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) }))) (if_statement "if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }" if (parenthesized_expression "((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68))" ( (binary_expression "(((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)" (parenthesized_expression "(((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64))" ( (binary_expression "((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)" (parenthesized_expression "((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558]))" ( (binary_expression "(DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(DAT_00080558 < 0)" ( (binary_expression "DAT_00080558 < 0" identifier < number_literal) )) || (parenthesized_expression "(iVar13 == (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 == (&DAT_00089038)[DAT_00080558]" identifier == (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ))) )) && (parenthesized_expression "(local_44 == DAT_00088e64)" ( (binary_expression "local_44 == DAT_00088e64" identifier == identifier) ))) )) && (parenthesized_expression "(local_48 == DAT_00088e68)" ( (binary_expression "local_48 == DAT_00088e68" identifier == identifier) ))) )) (compound_statement "{\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }" { (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_44 = iVar6;" (assignment_expression "local_44 = iVar6" identifier = identifier) ;) (expression_statement "iStack_40 = iVar13;" (assignment_expression "iStack_40 = iVar13" identifier = identifier) ;) (expression_statement "local_48 = (int *)FUN_0003b610(iVar13);" (assignment_expression "local_48 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "puVar7 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(iVar13)" identifier = (cast_expression "(undefined *)FUN_00038ac0(iVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (if_statement "if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }" if (parenthesized_expression "(puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180)" ( (binary_expression "puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180" identifier == (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal)) )) (compound_statement "{\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }" { (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = *local_48;" (assignment_expression "*param_1 = *local_48" (pointer_expression "*param_1" * identifier) = (pointer_expression "*local_48" * identifier)) ;) (expression_statement "param_1[1] = local_48[1];" (assignment_expression "param_1[1] = local_48[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "local_48[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = local_48[2];" (assignment_expression "param_1[2] = local_48[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "local_48[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = local_48[3];" (assignment_expression "param_1[3] = local_48[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "local_48[3]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = local_48[4];" (assignment_expression "iVar8 = local_48[4]" identifier = (subscript_expression "local_48[4]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (uint *)(param_1 + 2);" (assignment_expression "puVar1 = (uint *)(param_1 + 2)" identifier = (cast_expression "(uint *)(param_1 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + uVar2;" (assignment_expression "*puVar1 = *puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) + identifier)) ;) (expression_statement "param_1[4] = iVar8;" (assignment_expression "param_1[4] = iVar8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);" (assignment_expression "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (binary_expression "param_1[3] + iVar13" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier) + (cast_expression "(uint)CARRY4(uVar5,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar2)" identifier (argument_list "(uVar5,uVar2)" ( identifier , identifier )))))) ;) (return_statement "return local_44;" return identifier ;) })) (if_statement "if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }" if (parenthesized_expression "((char)local_48[4] == '\x03')" ( (binary_expression "(char)local_48[4] == '\x03'" (cast_expression "(char)local_48[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_48[4]" identifier [ number_literal ])) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }" { (expression_statement "uVar15 = auStack_4c < (undefined1 *)0xc;" (assignment_expression "uVar15 = auStack_4c < (undefined1 *)0xc" identifier = (binary_expression "auStack_4c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x58" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x58" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar12 = (byte *)FUN_00038a80(*local_48);" (assignment_expression "pbVar12 = (byte *)FUN_00038a80(*local_48)" identifier = (cast_expression "(byte *)FUN_00038a80(*local_48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038a80(*local_48)" identifier (argument_list "(*local_48)" ( (pointer_expression "*local_48" * identifier) ))))) ;) (expression_statement "iVar13 = 0x16;" (assignment_expression "iVar13 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_"" identifier = (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content "))) ;) (do_statement "do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);" do (compound_statement "{\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar12 < *pbVar14;" (assignment_expression "uVar15 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar17 = *pbVar12 == *pbVar14;" (assignment_expression "uVar17 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }" if (parenthesized_expression "((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15)" ( (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n            iStack_40 = *local_48;\n          }" { (expression_statement "iStack_40 = *local_48;" (assignment_expression "iStack_40 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) })) })) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 3" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_1 = iStack_40;" (assignment_expression "*param_1 = iStack_40" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return local_44;" return identifier ;) })) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) })) })) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }" { (labeled_statement "LAB_00049e58:\n    FUN_0003b610(iVar8);" statement_identifier : (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;)) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) (expression_statement "bVar4 = *(byte *)(param_1 + 4);" (assignment_expression "bVar4 = *(byte *)(param_1 + 4)" identifier = (pointer_expression "*(byte *)(param_1 + 4)" * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }" else (compound_statement "{\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }" { (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar4 = *(byte *)(param_1 + 4);" (assignment_expression "bVar4 = *(byte *)(param_1 + 4)" identifier = (pointer_expression "*(byte *)(param_1 + 4)" * (cast_expression "(byte *)(param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }))) })) (if_statement "if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }" if (parenthesized_expression "((byte)(bVar4 - 0x13) < 2)" ( (binary_expression "(byte)(bVar4 - 0x13) < 2" (call_expression "(byte)(bVar4 - 0x13)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 0x13)" ( (binary_expression "bVar4 - 0x13" identifier - number_literal) ))) < number_literal) )) (compound_statement "{\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }" { (expression_statement "local_44 = DAT_00088e64;" (assignment_expression "local_44 = DAT_00088e64" identifier = identifier) ;) (expression_statement "local_48 = DAT_00088e68;" (assignment_expression "local_48 = DAT_00088e68" identifier = identifier) ;) (if_statement "if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" if (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) (compound_statement "{\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" { (if_statement "if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;" if (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (goto_statement "goto LAB_0004a47d;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }" else (compound_statement "{\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }" { (if_statement "if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }" if (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) (compound_statement "{\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }" { (labeled_statement "LAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;" statement_identifier : (if_statement "if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;" if (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;))) })) (if_statement "if (local_44 != DAT_00088e64) goto LAB_0004a3f0;" if (parenthesized_expression "(local_44 != DAT_00088e64)" ( (binary_expression "local_44 != DAT_00088e64" identifier != identifier) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (labeled_statement "LAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;" statement_identifier : (if_statement "if (local_48 != DAT_00088e68) goto LAB_0004a3f0;" if (parenthesized_expression "(local_48 != DAT_00088e68)" ( (binary_expression "local_48 != DAT_00088e68" identifier != identifier) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;))) }))) (expression_statement "iVar8 = param_1[1];" (assignment_expression "iVar8 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }" { (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" identifier (argument_list "(iVar8)" ( identifier ))) ;) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 2)" ( (binary_expression "iVar6 == 2" identifier == number_literal) )) (compound_statement "{\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }" { (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) }) (else_clause "else if (iVar6 == 0) {\n      return 0;\n    }" else (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })))) })) (if_statement "if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;" if (parenthesized_expression "((char)param_1[4] == '\x13')" ( (binary_expression "(char)param_1[4] == '\x13'" (cast_expression "(char)param_1[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) == (char_literal "'\x13'" ' escape_sequence ')) )) (compound_statement "{\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }" { (expression_statement "local_48 = DAT_00088e68;" (assignment_expression "local_48 = DAT_00088e68" identifier = identifier) ;) (if_statement "if (DAT_00080558 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(DAT_00080558 < 0)" ( (binary_expression "DAT_00080558 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;" if (parenthesized_expression "((&DAT_00089038)[DAT_00080558] != iVar13)" ( (binary_expression "(&DAT_00089038)[DAT_00080558] != iVar13" (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ]) != identifier) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) }) (else_clause "else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;" else (if_statement "if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;" if (parenthesized_expression "(((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64))" ( (binary_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)" (parenthesized_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558]))" ( (binary_expression "(-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(-1 < DAT_00080558)" ( (binary_expression "-1 < DAT_00080558" number_literal < identifier) )) && (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" ( (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" identifier != (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" ( (pointer_expression "&DAT_00089038" & identifier) )) [ identifier ])) ))) )) || (parenthesized_expression "(local_44 != DAT_00088e64)" ( (binary_expression "local_44 != DAT_00088e64" identifier != identifier) ))) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)))) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" identifier = identifier) ;) (if_statement "if (local_48 != DAT_00088e68) goto LAB_0004a3f0;" if (parenthesized_expression "(local_48 != DAT_00088e68)" ( (binary_expression "local_48 != DAT_00088e68" identifier != identifier) )) (goto_statement "goto LAB_0004a3f0;" goto statement_identifier ;)) (goto_statement "goto code_r0x00049f18;" goto statement_identifier ;) (labeled_statement "code_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }" statement_identifier : (if_statement "if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }" if (parenthesized_expression "(DAT_00088e40 == 1)" ( (binary_expression "DAT_00088e40 == 1" identifier == number_literal) )) (compound_statement "{\n    DAT_00088e40 = uVar5;\n  }" { (expression_statement "DAT_00088e40 = uVar5;" (assignment_expression "DAT_00088e40 = uVar5" identifier = identifier) ;) }))) (labeled_statement "code_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);" statement_identifier : (expression_statement "iVar13 = FUN_0003b610(*param_1);" (assignment_expression "iVar13 = FUN_0003b610(*param_1)" identifier = (call_expression "FUN_0003b610(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;)) (if_statement "if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }" if (parenthesized_expression "(*(char *)(iVar13 + 0x10) == '\x05')" ( (binary_expression "*(char *)(iVar13 + 0x10) == '\x05'" (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }" { (labeled_statement "LAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,"invalid use of register",5);" (assignment_expression "uVar9 = dcgettext(0,"invalid use of register",5)" identifier = (call_expression "dcgettext(0,"invalid use of register",5)" identifier (argument_list "(0,"invalid use of register",5)" ( number_literal , (string_literal ""invalid use of register"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_0002bd60(uVar9);" (call_expression "FUN_0002bd60(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))) ;) (expression_statement "iVar8 = FUN_00049de0();" (assignment_expression "iVar8 = FUN_00049de0()" identifier = (call_expression "FUN_00049de0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar7 = PTR__bfd_std_section_0007ffb0;" (assignment_expression "puVar7 = PTR__bfd_std_section_0007ffb0" identifier = identifier) ;) (if_statement "if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar8 == 2)" ( (binary_expression "iVar8 == 2" identifier == number_literal) )) (compound_statement "{\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }" { (expression_statement "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" identifier (argument_list "(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" ( identifier , (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal) ))) ;) }) (else_clause "else if (iVar8 == 0) {\n    return 0;\n  }" else (if_statement "if (iVar8 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })))) (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_44 = iVar13;" (assignment_expression "local_44 = iVar13" identifier = identifier) ;) (expression_statement "local_48 = (int *)FUN_0003b610(iVar13);" (assignment_expression "local_48 = (int *)FUN_0003b610(iVar13)" identifier = (cast_expression "(int *)FUN_0003b610(iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003b610(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (expression_statement "puVar10 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar10 = (undefined *)FUN_00038ac0(iVar13)" identifier = (cast_expression "(undefined *)FUN_00038ac0(iVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(iVar13)" identifier (argument_list "(iVar13)" ( identifier ))))) ;) (if_statement "if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }" if (parenthesized_expression "(puVar10 != puVar7 + 0x180)" ( (binary_expression "puVar10 != puVar7 + 0x180" identifier != (binary_expression "puVar7 + 0x180" identifier + number_literal)) )) (compound_statement "{\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }" { (labeled_statement "code_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }" statement_identifier : (if_statement "if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }" if (parenthesized_expression "((char)local_48[4] == '\x03')" ( (binary_expression "(char)local_48[4] == '\x03'" (cast_expression "(char)local_48[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_48[4]" identifier [ number_literal ])) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }" { (expression_statement "uVar15 = auStack_4c < (undefined1 *)0xc;" (assignment_expression "uVar15 = auStack_4c < (undefined1 *)0xc" identifier = (binary_expression "auStack_4c < (undefined1 *)0xc" identifier < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x58" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x58" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar12 = (byte *)FUN_00038a80(*local_48);" (assignment_expression "pbVar12 = (byte *)FUN_00038a80(*local_48)" identifier = (cast_expression "(byte *)FUN_00038a80(*local_48)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038a80(*local_48)" identifier (argument_list "(*local_48)" ( (pointer_expression "*local_48" * identifier) ))))) ;) (expression_statement "iVar13 = 0x16;" (assignment_expression "iVar13 = 0x16" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_"" identifier = (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_OFFSET_TABLE_"" " string_content "))) ;) (do_statement "do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);" do (compound_statement "{\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      }" { (if_statement "if (iVar13 == 0) break;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "uVar15 = *pbVar12 < *pbVar14;" (assignment_expression "uVar15 = *pbVar12 < *pbVar14" identifier = (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "uVar17 = *pbVar12 == *pbVar14;" (assignment_expression "uVar17 = *pbVar12 == *pbVar14" identifier = (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar17)" ( (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }" if (parenthesized_expression "((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15)" ( (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" ( (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" ! (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar17" ! (cast_expression "(bool)uVar17" ( (type_descriptor "bool" primitive_type) ) identifier))) )) == (cast_expression "(bool)uVar15" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (compound_statement "{\n        local_44 = *local_48;\n      }" { (expression_statement "local_44 = *local_48;" (assignment_expression "local_44 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) })) }))) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 3" (pointer_expression "*(undefined1 *)(param_1 + 4)" * (cast_expression "(undefined1 *)(param_1 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*param_1 = local_44;" (assignment_expression "*param_1 = local_44" (pointer_expression "*param_1" * identifier) = identifier) ;) (labeled_statement "code_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }" statement_identifier : (if_statement "if (DAT_00080558 < 0) {\n      return 1;\n    }" if (parenthesized_expression "(DAT_00080558 < 0)" ( (binary_expression "DAT_00080558 < 0" identifier < number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) }))) (goto_statement "goto code_r0x00049f28;" goto statement_identifier ;) })) (labeled_statement "code_r0x0004a4cf:\n  uVar2 = param_1[2];" statement_identifier : (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;)) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = *local_48;" (assignment_expression "*param_1 = *local_48" (pointer_expression "*param_1" * identifier) = (pointer_expression "*local_48" * identifier)) ;) (expression_statement "param_1[1] = local_48[1];" (assignment_expression "param_1[1] = local_48[1]" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (subscript_expression "local_48[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = local_48[2];" (assignment_expression "param_1[2] = local_48[2]" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (subscript_expression "local_48[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = local_48[3];" (assignment_expression "param_1[3] = local_48[3]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "local_48[3]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = local_48[4];" (assignment_expression "iVar8 = local_48[4]" identifier = (subscript_expression "local_48[4]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (uint *)(param_1 + 2);" (assignment_expression "puVar1 = (uint *)(param_1 + 2)" identifier = (cast_expression "(uint *)(param_1 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + uVar2;" (assignment_expression "*puVar1 = *puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + uVar2" (pointer_expression "*puVar1" * identifier) + identifier)) ;) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" identifier = identifier) ;) (expression_statement "param_1[4] = iVar8;" (assignment_expression "param_1[4] = iVar8" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);" (assignment_expression "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (binary_expression "param_1[3] + iVar13" (subscript_expression "param_1[3]" identifier [ number_literal ]) + identifier) + (cast_expression "(uint)CARRY4(uVar5,uVar2)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar2)" identifier (argument_list "(uVar5,uVar2)" ( identifier , identifier )))))) ;) (labeled_statement "code_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }" statement_identifier : (if_statement "if (iVar6 < 0) {\n    return 1;\n  }" if (parenthesized_expression "(iVar6 < 0)" ( (binary_expression "iVar6 < 0" identifier < number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) }))) (if_statement "if ((char)param_1[4] != '\x03') {\n    return 1;\n  }" if (parenthesized_expression "((char)param_1[4] != '\x03')" ( (binary_expression "(char)param_1[4] != '\x03'" (cast_expression "(char)param_1[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (labeled_statement "code_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }" statement_identifier : (if_statement "if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }" if (parenthesized_expression "((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7))" ( (binary_expression "(((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)" (parenthesized_expression "(((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7))" ( (binary_expression "((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)" (parenthesized_expression "((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180))" ( (binary_expression "(DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(DAT_00088e50 == 0)" ( (binary_expression "DAT_00088e50 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)" ( (comma_expression "puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(*param_1)" identifier = (cast_expression "(undefined *)FUN_00038ac0(*param_1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00038ac0(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))))) , (binary_expression "puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180" identifier != (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" identifier + number_literal))) ))) )) && (parenthesized_expression "(DAT_000897ec != puVar7)" ( (binary_expression "DAT_000897ec != puVar7" identifier != identifier) ))) )) && (parenthesized_expression "(DAT_00089720 != puVar7)" ( (binary_expression "DAT_00089720 != puVar7" identifier != identifier) ))) )) (compound_statement "{\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }" { (expression_statement "DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;" (assignment_expression "DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1" identifier = (binary_expression "DAT_00088e44 | (DAT_00088e54 != 0) + 1" identifier | (binary_expression "(DAT_00088e54 != 0) + 1" (parenthesized_expression "(DAT_00088e54 != 0)" ( (binary_expression "DAT_00088e54 != 0" identifier != number_literal) )) + number_literal))) ;) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (unary_expression - (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return LIT ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (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 *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT & (binary_expression IDENT != LIT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( IDENT )) (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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) >> LIT) ))) + (binary_expression IDENT * IDENT)) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (unary_expression - IDENT) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) }))))))) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ))) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) ;) (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 ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) )) (goto_statement goto statement_identifier ;))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })))) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) != IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ))) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( 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 { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return 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 *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) ;) (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 ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return LIT ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) , (binary_expression IDENT != (binary_expression IDENT + LIT))) ))) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) + LIT))) ;) }))) (return_statement return LIT ;) })))
(function_definition "int __regparm3 FUN_00049de0(int *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  int *piVar11;\n  byte *pbVar12;\n  char *__s1;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_4c [4];\n  int *local_48;\n  int local_44;\n  int iStack_40;\n  int iStack_30;\n  int iStack_2c;\n  undefined1 uStack_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar13 = 0;\n  uStack_14 = 0x49deb;\n  if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }\n  if (DAT_00088ef4 == 0) {\n    return 1;\n  }\n  local_44 = DAT_00088e64;\n  local_48 = DAT_00088e68;\n  bVar4 = *(byte *)(param_1 + 4);\n  uVar5 = (uint)bVar4;\n  if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }\n  iVar8 = *param_1;\n  if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }\n  if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }\n  iVar8 = param_1[1];\n  if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }\n  if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;\n  iVar6 = DAT_00080558;\n  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  goto code_r0x00049f18;\ncode_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }\ncode_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);\n  if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }\n  iVar13 = *param_1;\n  FUN_0003b610(iVar13);\n  iVar8 = FUN_00049de0();\n  puVar7 = PTR__bfd_std_section_0007ffb0;\n  if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }\n  iVar13 = *param_1;\n  local_44 = iVar13;\n  local_48 = (int *)FUN_0003b610(iVar13);\n  puVar10 = (undefined *)FUN_00038ac0(iVar13);\n  if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }\ncode_r0x0004a4cf:\n  uVar2 = param_1[2];\n  iVar13 = param_1[3];\n  *param_1 = *local_48;\n  param_1[1] = local_48[1];\n  param_1[2] = local_48[2];\n  param_1[3] = local_48[3];\n  iVar8 = local_48[4];\n  puVar1 = (uint *)(param_1 + 2);\n  uVar5 = *puVar1;\n  *puVar1 = *puVar1 + uVar2;\n  iVar6 = DAT_00080558;\n  param_1[4] = iVar8;\n  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\ncode_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }\n  if ((char)param_1[4] != '\x03') {\n    return 1;\n  }\ncode_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }\n  return 1;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00049de0(int *param_1)" (identifier "FUN_00049de0") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  ulonglong uVar3;\n  byte bVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined *puVar10;\n  int *piVar11;\n  byte *pbVar12;\n  char *__s1;\n  int iVar13;\n  byte *pbVar14;\n  undefined1 uVar15;\n  bool bVar16;\n  undefined1 uVar17;\n  byte bVar18;\n  undefined1 auStack_4c [4];\n  int *local_48;\n  int local_44;\n  int iStack_40;\n  int iStack_30;\n  int iStack_2c;\n  undefined1 uStack_20;\n  undefined4 uStack_14;\n  \n  bVar18 = 0;\n  iVar13 = 0;\n  uStack_14 = 0x49deb;\n  if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }\n  if (DAT_00088ef4 == 0) {\n    return 1;\n  }\n  local_44 = DAT_00088e64;\n  local_48 = DAT_00088e68;\n  bVar4 = *(byte *)(param_1 + 4);\n  uVar5 = (uint)bVar4;\n  if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }\n  iVar8 = *param_1;\n  if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }\n  if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }\n  iVar8 = param_1[1];\n  if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }\n  if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;\n  iVar6 = DAT_00080558;\n  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  goto code_r0x00049f18;\ncode_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }\ncode_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);\n  if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }\n  iVar13 = *param_1;\n  FUN_0003b610(iVar13);\n  iVar8 = FUN_00049de0();\n  puVar7 = PTR__bfd_std_section_0007ffb0;\n  if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }\n  iVar13 = *param_1;\n  local_44 = iVar13;\n  local_48 = (int *)FUN_0003b610(iVar13);\n  puVar10 = (undefined *)FUN_00038ac0(iVar13);\n  if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }\ncode_r0x0004a4cf:\n  uVar2 = param_1[2];\n  iVar13 = param_1[3];\n  *param_1 = *local_48;\n  param_1[1] = local_48[1];\n  param_1[2] = local_48[2];\n  param_1[3] = local_48[3];\n  iVar8 = local_48[4];\n  puVar1 = (uint *)(param_1 + 2);\n  uVar5 = *puVar1;\n  *puVar1 = *puVar1 + uVar2;\n  iVar6 = DAT_00080558;\n  param_1[4] = iVar8;\n  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\ncode_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }\n  if ((char)param_1[4] != '\x03') {\n    return 1;\n  }\ncode_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }\n  return 1;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "ulonglong uVar3;" (type_identifier "ulonglong") (identifier "uVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "char *__s1;" (primitive_type "char") (pointer_declarator "*__s1" (* "*") (identifier "__s1")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "undefined1 uVar15;" (type_identifier "undefined1") (identifier "uVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "undefined1 uVar17;" (type_identifier "undefined1") (identifier "uVar17") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "undefined1 auStack_4c [4];" (type_identifier "undefined1") (array_declarator "auStack_4c [4]" (identifier "auStack_4c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int *local_48;" (primitive_type "int") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "int iStack_40;" (primitive_type "int") (identifier "iStack_40") (; ";")) (declaration "int iStack_30;" (primitive_type "int") (identifier "iStack_30") (; ";")) (declaration "int iStack_2c;" (primitive_type "int") (identifier "iStack_2c") (; ";")) (declaration "undefined1 uStack_20;" (type_identifier "undefined1") (identifier "uStack_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x49deb;" (assignment_expression "uStack_14 = 0x49deb" (identifier "uStack_14") (= "=") (number_literal "0x49deb")) (; ";")) (if_statement "if (-1 < DAT_00080558) {\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }" (if "if") (parenthesized_expression "(-1 < DAT_00080558)" (( "(") (binary_expression "-1 < DAT_00080558" (number_literal "-1") (< "<") (identifier "DAT_00080558")) () ")")) (compound_statement "{\n    iVar13 = (&DAT_00089038)[DAT_00080558];\n  }" ({ "{") (expression_statement "iVar13 = (&DAT_00089038)[DAT_00080558];" (assignment_expression "iVar13 = (&DAT_00089038)[DAT_00080558]" (identifier "iVar13") (= "=") (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "DAT_00080558") (] "]"))) (; ";")) (} "}"))) (if_statement "if (DAT_00088ef4 == 0) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(DAT_00088ef4 == 0)" (( "(") (binary_expression "DAT_00088ef4 == 0" (identifier "DAT_00088ef4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "local_44 = DAT_00088e64;" (assignment_expression "local_44 = DAT_00088e64" (identifier "local_44") (= "=") (identifier "DAT_00088e64")) (; ";")) (expression_statement "local_48 = DAT_00088e68;" (assignment_expression "local_48 = DAT_00088e68" (identifier "local_48") (= "=") (identifier "DAT_00088e68")) (; ";")) (expression_statement "bVar4 = *(byte *)(param_1 + 4);" (assignment_expression "bVar4 = *(byte *)(param_1 + 4)" (identifier "bVar4") (= "=") (pointer_expression "*(byte *)(param_1 + 4)" (* "*") (cast_expression "(byte *)(param_1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar5 = (uint)bVar4;" (assignment_expression "uVar5 = (uint)bVar4" (identifier "uVar5") (= "=") (cast_expression "(uint)bVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar4"))) (; ";")) (if_statement "if (bVar4 < 0x3e) {\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }" (if "if") (parenthesized_expression "(bVar4 < 0x3e)" (( "(") (binary_expression "bVar4 < 0x3e" (identifier "bVar4") (< "<") (number_literal "0x3e")) () ")")) (compound_statement "{\n    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);\n    switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }\n  }" ({ "{") (expression_statement "iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);" (assignment_expression "iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(&DAT_00064b68 + uVar5 * 4)" (* "*") (cast_expression "(int *)(&DAT_00064b68 + uVar5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00064b68 + uVar5 * 4)" (( "(") (binary_expression "&DAT_00064b68 + uVar5 * 4" (pointer_expression "&DAT_00064b68" (& "&") (identifier "DAT_00064b68")) (+ "+") (binary_expression "uVar5 * 4" (identifier "uVar5") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (switch_statement "switch(uVar5) {\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }" (switch "switch") (parenthesized_expression "(uVar5)" (( "(") (identifier "uVar5") () ")")) (compound_statement "{\n    default:\n      break;\n    case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;\n    case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;\n    case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;\n    case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;\n    case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;\n    case 0x30:\n    case 0x31:\n    case 0x32:\n    case 0x33:\n    case 0x34:\n    case 0x35:\n    case 0x36:\n    case 0x37:\n    case 0x38:\n    case 0x39:\n    case 0x3a:\n    case 0x3b:\n      goto code_r0x00049f90;\n    case 0x3c:\n      goto code_r0x00049fa0;\n    case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;\n    }" ({ "{") (case_statement "default:\n      break;" (default "default") (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n      if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }\n      iVar8 = *param_1;\n      if (iVar8 != 0) goto LAB_00049e58;\n      if (-1 < DAT_00080558) goto LAB_0004a3ce;\n      goto LAB_0004a47d;" (case "case") (number_literal "2") (: ":") (if_statement "if (*(short *)((int)param_1 + 0x12) != 0) {\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }" (if "if") (parenthesized_expression "(*(short *)((int)param_1 + 0x12) != 0)" (( "(") (binary_expression "*(short *)((int)param_1 + 0x12) != 0" (pointer_expression "*(short *)((int)param_1 + 0x12)" (* "*") (cast_expression "(short *)((int)param_1 + 0x12)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x12)" (( "(") (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x12")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar13 = FUN_00041d50();\n        return iVar13;\n      }" ({ "{") (expression_statement "iVar13 = FUN_00041d50();" (assignment_expression "iVar13 = FUN_00041d50()" (identifier "iVar13") (= "=") (call_expression "FUN_00041d50()" (identifier "FUN_00041d50") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar13;" (return "return") (identifier "iVar13") (; ";")) (} "}"))) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_00049e58;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00049e58;" (goto "goto") (statement_identifier "LAB_00049e58") (; ";"))) (if_statement "if (-1 < DAT_00080558) goto LAB_0004a3ce;" (if "if") (parenthesized_expression "(-1 < DAT_00080558)" (( "(") (binary_expression "-1 < DAT_00080558" (number_literal "-1") (< "<") (identifier "DAT_00080558")) () ")")) (goto_statement "goto LAB_0004a3ce;" (goto "goto") (statement_identifier "LAB_0004a3ce") (; ";"))) (goto_statement "goto LAB_0004a47d;" (goto "goto") (statement_identifier "LAB_0004a47d") (; ";"))) (case_statement "case 5:\n      iVar13 = FUN_00041d50();\n      if (iVar13 != 2) {\n        return iVar13;\n      }\n      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }\n      *(undefined1 *)(param_1 + 4) = 2;\n      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;\n      param_1[2] = 0;\n      param_1[3] = 0;\n      return 2;" (case "case") (number_literal "5") (: ":") (expression_statement "iVar13 = FUN_00041d50();" (assignment_expression "iVar13 = FUN_00041d50()" (identifier "iVar13") (= "=") (call_expression "FUN_00041d50()" (identifier "FUN_00041d50") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar13 != 2) {\n        return iVar13;\n      }" (if "if") (parenthesized_expression "(iVar13 != 2)" (( "(") (binary_expression "iVar13 != 2" (identifier "iVar13") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n        return iVar13;\n      }" ({ "{") (return_statement "return iVar13;" (return "return") (identifier "iVar13") (; ";")) (} "}"))) (if_statement "if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }" (if "if") (parenthesized_expression "(-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2]))" (( "(") (binary_expression "-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])" (unary_expression "-param_1[3]" (- "-") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (< "<") (cast_expression "(int)(uint)(0xfffe < (uint)param_1[2])" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(0xfffe < (uint)param_1[2])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffe < (uint)param_1[2])" (( "(") (binary_expression "0xfffe < (uint)param_1[2]" (number_literal "0xfffe") (< "<") (cast_expression "(uint)param_1[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) () ")"))))) () ")")) (compound_statement "{\n                    \n        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;\n      }" ({ "{") (expression_statement "FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)\n        ;" (call_expression "FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)" (identifier "FUN_0002be80") (argument_list "("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)" (( "(") (string_literal ""../../gas/config/tc-i386-intel.c"" (" """) (string_content "../../gas/config/tc-i386-intel.c") (" """)) (, ",") (number_literal "0x1ec") (, ",") (string_literal ""i386_intel_simplify"" (" """) (string_content "i386_intel_simplify") (" """)) (, ",") (binary_expression "iVar8 + 0x80000" (identifier "iVar8") (+ "+") (number_literal "0x80000")) () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(param_1 + 4) = 2;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 2" (pointer_expression "*(undefined1 *)(param_1 + 4)" (* "*") (cast_expression "(undefined1 *)(param_1 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;" (assignment_expression "*(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1" (pointer_expression "*(short *)((int)param_1 + 0x12)" (* "*") (cast_expression "(short *)((int)param_1 + 0x12)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x12)" (( "(") (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (binary_expression "(short)param_1[2] + 1" (cast_expression "(short)param_1[2]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return 2;" (return "return") (number_literal "2") (; ";"))) (case_statement "case 10:\n      if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }\n      if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }\n      iVar13 = *param_1;\n      DAT_00088e58 = DAT_00088e58 + 1;\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }\n      local_44 = iVar13;\n      FUN_0003b610(iVar13);\n      iVar13 = FUN_00049de0();\n      if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }\n      if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      iVar6 = DAT_00080558;\n      if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }\n      goto code_r0x00049f18;" (case "case") (number_literal "10") (: ":") (if_statement "if (DAT_00080558 < 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }" (if "if") (parenthesized_expression "(DAT_00080558 < 0)" (( "(") (binary_expression "DAT_00080558 < 0" (identifier "DAT_00080558") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a47d;\n        goto LAB_00049e58;\n      }" ({ "{") (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_0004a47d;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004a47d;" (goto "goto") (statement_identifier "LAB_0004a47d") (; ";"))) (goto_statement "goto LAB_00049e58;" (goto "goto") (statement_identifier "LAB_00049e58") (; ";")) (} "}"))) (if_statement "if (DAT_00088e54 == 0) {\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }" (if "if") (parenthesized_expression "(DAT_00088e54 == 0)" (( "(") (binary_expression "DAT_00088e54 == 0" (identifier "DAT_00088e54") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar8 = *param_1;\n        if (iVar8 == 0) goto LAB_0004a3ce;\n        goto LAB_00049e58;\n      }" ({ "{") (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_0004a3ce;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004a3ce;" (goto "goto") (statement_identifier "LAB_0004a3ce") (; ";"))) (goto_statement "goto LAB_00049e58;" (goto "goto") (statement_identifier "LAB_00049e58") (; ";")) (} "}"))) (if_statement "if (DAT_00088e58 == 0) {\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }" (if "if") (parenthesized_expression "(DAT_00088e58 == 0)" (( "(") (binary_expression "DAT_00088e58 == 0" (identifier "DAT_00088e58") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uRam00088e6c = 1;\n        iRam00088e70 = 0;\n      }" ({ "{") (expression_statement "uRam00088e6c = 1;" (assignment_expression "uRam00088e6c = 1" (identifier "uRam00088e6c") (= "=") (number_literal "1")) (; ";")) (expression_statement "iRam00088e70 = 0;" (assignment_expression "iRam00088e70 = 0" (identifier "iRam00088e70") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" (identifier "iVar13") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "DAT_00088e58 = DAT_00088e58 + 1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + 1" (identifier "DAT_00088e58") (= "=") (binary_expression "DAT_00088e58 + 1" (identifier "DAT_00088e58") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" (identifier "FUN_0003b610") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))) (; ";")) (expression_statement "iVar8 = FUN_00049de0();" (assignment_expression "iVar8 = FUN_00049de0()" (identifier "iVar8") (= "=") (call_expression "FUN_00049de0()" (identifier "FUN_00049de0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }\n      else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar8 == 2)" (( "(") (binary_expression "iVar8 == 2" (identifier "iVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (local_48 == (int *)0x0) goto code_r0x0004a136;\ncode_r0x0004a795:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = (int *)0x0;\n      }" ({ "{") (expression_statement "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" (identifier "FUN_00038b00") (argument_list "(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (identifier "iVar13") (, ",") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")) () ")"))) (; ";")) (if_statement "if (local_48 == (int *)0x0) goto code_r0x0004a136;" (if "if") (parenthesized_expression "(local_48 == (int *)0x0)" (( "(") (binary_expression "local_48 == (int *)0x0" (identifier "local_48") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto code_r0x0004a136;" (goto "goto") (statement_identifier "code_r0x0004a136") (; ";"))) (labeled_statement "code_r0x0004a795:\n        iVar13 = param_1[1];" (statement_identifier "code_r0x0004a795") (: ":") (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" (identifier "iVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" (identifier "bVar16") (= "=") (true "true")) (; ";")) (expression_statement "piVar11 = (int *)0x0;" (assignment_expression "piVar11 = (int *)0x0" (identifier "piVar11") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }" (else "else") (compound_statement "{\n        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }\ncode_r0x0004a136:\n        iVar13 = param_1[1];\n        bVar16 = true;\n        piVar11 = DAT_00088e68;\n        if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }\n      }" ({ "{") (if_statement "if ((iVar8 == 0) || (local_48 != (int *)0x0)) {\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }" (if "if") (parenthesized_expression "((iVar8 == 0) || (local_48 != (int *)0x0))" (( "(") (binary_expression "(iVar8 == 0) || (local_48 != (int *)0x0)" (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_48 != (int *)0x0)" (( "(") (binary_expression "local_48 != (int *)0x0" (identifier "local_48") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n          if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }\n          goto code_r0x0004a795;\n        }" ({ "{") (if_statement "if (iVar8 == 0) {\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            DAT_00088e58 = DAT_00088e58 + -1;\n            return 0;\n          }" ({ "{") (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" (identifier "DAT_00088e58") (= "=") (binary_expression "DAT_00088e58 + -1" (identifier "DAT_00088e58") (+ "+") (number_literal "-1"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto code_r0x0004a795;" (goto "goto") (statement_identifier "code_r0x0004a795") (; ";")) (} "}"))) (labeled_statement "code_r0x0004a136:\n        iVar13 = param_1[1];" (statement_identifier "code_r0x0004a136") (: ":") (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" (identifier "iVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" (identifier "bVar16") (= "=") (true "true")) (; ";")) (expression_statement "piVar11 = DAT_00088e68;" (assignment_expression "piVar11 = DAT_00088e68" (identifier "piVar11") (= "=") (identifier "DAT_00088e68")) (; ";")) (if_statement "if (DAT_00088e68 != (int *)0x0) {\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }" (if "if") (parenthesized_expression "(DAT_00088e68 != (int *)0x0)" (( "(") (binary_expression "DAT_00088e68 != (int *)0x0" (identifier "DAT_00088e68") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          piVar11 = (int *)FUN_0003b610(iVar13);\n          iVar13 = param_1[1];\n          bVar16 = piVar11 == (int *)0x0;\n        }" ({ "{") (expression_statement "piVar11 = (int *)FUN_0003b610(iVar13);" (assignment_expression "piVar11 = (int *)FUN_0003b610(iVar13)" (identifier "piVar11") (= "=") (cast_expression "(int *)FUN_0003b610(iVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003b610(iVar13)" (identifier "FUN_0003b610") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" (identifier "iVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar16 = piVar11 == (int *)0x0;" (assignment_expression "bVar16 = piVar11 == (int *)0x0" (identifier "bVar16") (= "=") (binary_expression "piVar11 == (int *)0x0" (identifier "piVar11") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_44 = iVar13;" (assignment_expression "local_44 = iVar13" (identifier "local_44") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" (identifier "FUN_0003b610") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))) (; ";")) (expression_statement "iVar13 = FUN_00049de0();" (assignment_expression "iVar13 = FUN_00049de0()" (identifier "iVar13") (= "=") (call_expression "FUN_00049de0()" (identifier "FUN_00049de0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar13 == 2) {\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }\n      else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }" (if "if") (parenthesized_expression "(iVar13 == 2)" (( "(") (binary_expression "iVar13 == 2" (identifier "iVar13") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);\n        iVar8 = 1;\n      }" ({ "{") (expression_statement "FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180)" (identifier "FUN_00038b00") (argument_list "(local_44,PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (identifier "local_44") (, ",") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")) () ")"))) (; ";")) (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" (identifier "iVar8") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }" (else "else") (compound_statement "{\n        bVar16 = (bool)(bVar16 & iVar13 != 0);\n        iVar8 = iVar13;\n      }" ({ "{") (expression_statement "bVar16 = (bool)(bVar16 & iVar13 != 0);" (assignment_expression "bVar16 = (bool)(bVar16 & iVar13 != 0)" (identifier "bVar16") (= "=") (cast_expression "(bool)(bVar16 & iVar13 != 0)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar16 & iVar13 != 0)" (( "(") (binary_expression "bVar16 & iVar13 != 0" (identifier "bVar16") (& "&") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0"))) () ")")))) (; ";")) (expression_statement "iVar8 = iVar13;" (assignment_expression "iVar8 = iVar13" (identifier "iVar8") (= "=") (identifier "iVar13")) (; ";")) (} "}")))) (if_statement "if (bVar16) {\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }\n      else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (compound_statement "{\n        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n      }" ({ "{") (if_statement "if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }\n        else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" (if "if") (parenthesized_expression "(((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0))" (( "(") (binary_expression "((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&\n           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)" (parenthesized_expression "((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0))" (( "(") (binary_expression "(local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)" (parenthesized_expression "(local_48 == (int *)0x0)" (( "(") (binary_expression "local_48 == (int *)0x0" (identifier "local_48") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_00088e68 != (int *)0x0)" (( "(") (binary_expression "DAT_00088e68 != (int *)0x0" (identifier "DAT_00088e68") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)" (( "(") (comma_expression "piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0" (assignment_expression "piVar11 = (int *)FUN_0003b610(*param_1)" (identifier "piVar11") (= "=") (cast_expression "(int *)FUN_0003b610(*param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003b610(*param_1)" (identifier "FUN_0003b610") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))))) (, ",") (binary_expression "piVar11 != (int *)0x0" (identifier "piVar11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\ncode_r0x0004a69c:\n          FUN_00021620(piVar11);\n          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }\n          iVar13 = iVar13 * uRam00088e6c;\n          uVar3 = (ulonglong)uRam00088e6c;\n          uRam00088e6c = (uint)(uVar5 * uVar3);\n          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" ({ "{") (labeled_statement "code_r0x0004a69c:\n          FUN_00021620(piVar11);" (statement_identifier "code_r0x0004a69c") (: ":") (expression_statement "FUN_00021620(piVar11);" (call_expression "FUN_00021620(piVar11)" (identifier "FUN_00021620") (argument_list "(piVar11)" (( "(") (identifier "piVar11") () ")"))) (; ";"))) (if_statement "if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }\n          else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }" (if "if") (parenthesized_expression "(((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0))" (( "(") (binary_expression "((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)" (parenthesized_expression "((char)piVar11[4] == '\x02')" (( "(") (binary_expression "(char)piVar11[4] == '\x02'" (cast_expression "(char)piVar11[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]"))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)" (( "(") (binary_expression "(*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0" (parenthesized_expression "(*(byte *)((int)DAT_00088e68 + 7) & 0x40)" (( "(") (binary_expression "*(byte *)((int)DAT_00088e68 + 7) & 0x40" (pointer_expression "*(byte *)((int)DAT_00088e68 + 7)" (* "*") (cast_expression "(byte *)((int)DAT_00088e68 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)DAT_00088e68 + 7)" (( "(") (binary_expression "(int)DAT_00088e68 + 7" (cast_expression "(int)DAT_00088e68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_00088e68")) (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            uVar5 = piVar11[2];\n            iVar13 = piVar11[3];\n          }" ({ "{") (expression_statement "uVar5 = piVar11[2];" (assignment_expression "uVar5 = piVar11[2]" (identifier "uVar5") (= "=") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar13 = piVar11[3];" (assignment_expression "iVar13 = piVar11[3]" (identifier "iVar13") (= "=") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }" (else "else") (compound_statement "{\n            piVar11[2] = 0;\n            uVar5 = 0;\n            iVar13 = 0;\n            piVar11[3] = 0;\n          }" ({ "{") (expression_statement "piVar11[2] = 0;" (assignment_expression "piVar11[2] = 0" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" (identifier "iVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar11[3] = 0;" (assignment_expression "piVar11[3] = 0" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "iVar13 = iVar13 * uRam00088e6c;" (assignment_expression "iVar13 = iVar13 * uRam00088e6c" (identifier "iVar13") (= "=") (binary_expression "iVar13 * uRam00088e6c" (identifier "iVar13") (* "*") (identifier "uRam00088e6c"))) (; ";")) (expression_statement "uVar3 = (ulonglong)uRam00088e6c;" (assignment_expression "uVar3 = (ulonglong)uRam00088e6c" (identifier "uVar3") (= "=") (cast_expression "(ulonglong)uRam00088e6c" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uRam00088e6c"))) (; ";")) (expression_statement "uRam00088e6c = (uint)(uVar5 * uVar3);" (assignment_expression "uRam00088e6c = (uint)(uVar5 * uVar3)" (identifier "uRam00088e6c") (= "=") (call_expression "(uint)(uVar5 * uVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar5 * uVar3)" (( "(") (binary_expression "uVar5 * uVar3" (identifier "uVar5") (* "*") (identifier "uVar3")) () ")")))) (; ";")) (expression_statement "iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;" (assignment_expression "iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13" (identifier "iRam00088e70") (= "=") (binary_expression "(int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13" (binary_expression "(int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5" (cast_expression "(int)(uVar5 * uVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar5 * uVar3 >> 0x20)" (( "(") (binary_expression "uVar5 * uVar3 >> 0x20" (binary_expression "uVar5 * uVar3" (identifier "uVar5") (* "*") (identifier "uVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (binary_expression "iRam00088e70 * uVar5" (identifier "iRam00088e70") (* "*") (identifier "uVar5"))) (+ "+") (identifier "iVar13"))) (; ";")) (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" (identifier "DAT_00088e58") (= "=") (binary_expression "DAT_00088e58 + -1" (identifier "DAT_00088e58") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else {\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" (else "else") (compound_statement "{\n          DAT_00088e58 = DAT_00088e58 + -1;\n        }" ({ "{") (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" (identifier "DAT_00088e58") (= "=") (binary_expression "DAT_00088e58 + -1" (identifier "DAT_00088e58") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" (else "else") (compound_statement "{\n        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;\n        DAT_00088e58 = DAT_00088e58 + -1;\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" ({ "{") (if_statement "if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;" (if "if") (parenthesized_expression "((piVar11 != (int *)0x0) && (iVar13 != 0))" (( "(") (binary_expression "(piVar11 != (int *)0x0) && (iVar13 != 0)" (parenthesized_expression "(piVar11 != (int *)0x0)" (( "(") (binary_expression "piVar11 != (int *)0x0" (identifier "piVar11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto code_r0x0004a69c;" (goto "goto") (statement_identifier "code_r0x0004a69c") (; ";"))) (expression_statement "DAT_00088e58 = DAT_00088e58 + -1;" (assignment_expression "DAT_00088e58 = DAT_00088e58 + -1" (identifier "DAT_00088e58") (= "=") (binary_expression "DAT_00088e58 + -1" (identifier "DAT_00088e58") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar8 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" (identifier "iVar6") (= "=") (identifier "DAT_00080558")) (; ";")) (if_statement "if (DAT_00088e58 == 0) {\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }" (if "if") (parenthesized_expression "(DAT_00088e58 == 0)" (( "(") (binary_expression "DAT_00088e58 == 0" (identifier "DAT_00088e58") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }\n      }" ({ "{") (if_statement "if (uRam00088e6c == 2 && iRam00088e70 == 0) {\n          DAT_0008907c = 1;\n        }\n        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" (if "if") (parenthesized_expression "(uRam00088e6c == 2 && iRam00088e70 == 0)" (( "(") (binary_expression "uRam00088e6c == 2 && iRam00088e70 == 0" (binary_expression "uRam00088e6c == 2" (identifier "uRam00088e6c") (== "==") (number_literal "2")) (&& "&&") (binary_expression "iRam00088e70 == 0" (identifier "iRam00088e70") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          DAT_0008907c = 1;\n        }" ({ "{") (expression_statement "DAT_0008907c = 1;" (assignment_expression "DAT_0008907c = 1" (identifier "DAT_0008907c") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" (else "else") (if_statement "if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }\n        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" (if "if") (parenthesized_expression "(-iRam00088e70 < (int)(uint)(2 < uRam00088e6c))" (( "(") (binary_expression "-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)" (unary_expression "-iRam00088e70" (- "-") (identifier "iRam00088e70")) (< "<") (cast_expression "(int)(uint)(2 < uRam00088e6c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(2 < uRam00088e6c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(2 < uRam00088e6c)" (( "(") (binary_expression "2 < uRam00088e6c" (number_literal "2") (< "<") (identifier "uRam00088e6c")) () ")"))))) () ")")) (compound_statement "{\n          if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }\n        }" ({ "{") (if_statement "if (uRam00088e6c == 4 && iRam00088e70 == 0) {\n            DAT_0008907c = 2;\n          }\n          else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }" (if "if") (parenthesized_expression "(uRam00088e6c == 4 && iRam00088e70 == 0)" (( "(") (binary_expression "uRam00088e6c == 4 && iRam00088e70 == 0" (binary_expression "uRam00088e6c == 4" (identifier "uRam00088e6c") (== "==") (number_literal "4")) (&& "&&") (binary_expression "iRam00088e70 == 0" (identifier "iRam00088e70") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n            DAT_0008907c = 2;\n          }" ({ "{") (expression_statement "DAT_0008907c = 2;" (assignment_expression "DAT_0008907c = 2" (identifier "DAT_0008907c") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }" (else "else") (compound_statement "{\n            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;\n            DAT_0008907c = 3;\n          }" ({ "{") (if_statement "if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;" (if "if") (parenthesized_expression "(iRam00088e70 != 0 || uRam00088e6c != 8)" (( "(") (binary_expression "iRam00088e70 != 0 || uRam00088e6c != 8" (binary_expression "iRam00088e70 != 0" (identifier "iRam00088e70") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uRam00088e6c != 8" (identifier "uRam00088e6c") (!= "!=") (number_literal "8"))) () ")")) (goto_statement "goto code_r0x0004a8b9;" (goto "goto") (statement_identifier "code_r0x0004a8b9") (; ";"))) (expression_statement "DAT_0008907c = 3;" (assignment_expression "DAT_0008907c = 3" (identifier "DAT_0008907c") (= "=") (number_literal "3")) (; ";")) (} "}")))) (} "}")) (else_clause "else if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" (else "else") (if_statement "if (iRam00088e70 == 0 && uRam00088e6c == 1) {\n          DAT_0008907c = 0;\n        }\n        else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" (if "if") (parenthesized_expression "(iRam00088e70 == 0 && uRam00088e6c == 1)" (( "(") (binary_expression "iRam00088e70 == 0 && uRam00088e6c == 1" (binary_expression "iRam00088e70 == 0" (identifier "iRam00088e70") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uRam00088e6c == 1" (identifier "uRam00088e6c") (== "==") (number_literal "1"))) () ")")) (compound_statement "{\n          DAT_0008907c = 0;\n        }" ({ "{") (expression_statement "DAT_0008907c = 0;" (assignment_expression "DAT_0008907c = 0" (identifier "DAT_0008907c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" (else "else") (compound_statement "{\ncode_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);\n        }" ({ "{") (labeled_statement "code_r0x0004a8b9:\n          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);" (statement_identifier "code_r0x0004a8b9") (: ":") (expression_statement "DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);" (assignment_expression "DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0)" (identifier "DAT_00088e68") (= "=") (cast_expression "(int *)(PTR_i386_regtab_0007ff5c + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_i386_regtab_0007ff5c + 0x2d0)" (( "(") (binary_expression "PTR_i386_regtab_0007ff5c + 0x2d0" (identifier "PTR_i386_regtab_0007ff5c") (+ "+") (number_literal "0x2d0")) () ")")))) (; ";"))) (} "}")))))))) (} "}"))) (goto_statement "goto code_r0x00049f18;" (goto "goto") (statement_identifier "code_r0x00049f18") (; ";"))) (case_statement "case 0x1d:\n      iVar8 = *param_1;\n      if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }\n      if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }\n      iVar13 = param_1[1];\n      FUN_0003b610(iVar13);\n      iVar8 = FUN_00049de0();\n      if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }\n      if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }\n      iVar13 = param_1[1];\n      piVar11 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }\n      if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }\n      *param_1 = iVar13;\n      param_1[1] = 0;\n      *(undefined1 *)(param_1 + 4) = 3;\n      goto code_r0x0004a395;" (case "case") (number_literal "0x1d") (: ":") (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (iVar8 != 0) {\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0003b610(iVar8);\n        iVar6 = FUN_00049de0();\n        if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }\n        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      }" ({ "{") (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" (identifier "FUN_0003b610") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" (identifier "iVar6") (= "=") (call_expression "FUN_00049de0()" (identifier "FUN_00049de0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 2) {\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }\n        else if (iVar6 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar6 == 2)" (( "(") (binary_expression "iVar6 == 2" (identifier "iVar6") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        }" ({ "{") (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (identifier "FUN_00038b00") (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (identifier "iVar8") (, ",") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")) () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar6 == 0) {\n          return 0;\n        }" (else "else") (if_statement "if (iVar6 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))))) (if_statement "if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558]))" (( "(") (binary_expression "(-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(-1 < DAT_00080558)" (( "(") (binary_expression "-1 < DAT_00080558" (number_literal "-1") (< "<") (identifier "DAT_00080558")) () ")")) (&& "&&") (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" (( "(") (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" (identifier "iVar13") (!= "!=") (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "DAT_00080558") (] "]"))) () ")"))) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";"))) (} "}"))) (if_statement "if (DAT_00088e50 == 0) {\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }" (if "if") (parenthesized_expression "(DAT_00088e50 == 0)" (( "(") (binary_expression "DAT_00088e50 == 0" (identifier "DAT_00088e50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_00088e54 = DAT_00088e54 + 1;\n      }" ({ "{") (expression_statement "DAT_00088e54 = DAT_00088e54 + 1;" (assignment_expression "DAT_00088e54 = DAT_00088e54 + 1" (identifier "DAT_00088e54") (= "=") (binary_expression "DAT_00088e54 + 1" (identifier "DAT_00088e54") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" (identifier "iVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" (identifier "FUN_0003b610") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))) (; ";")) (expression_statement "iVar8 = FUN_00049de0();" (assignment_expression "iVar8 = FUN_00049de0()" (identifier "iVar8") (= "=") (call_expression "FUN_00049de0()" (identifier "FUN_00049de0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar8 == 2) {\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }\n      else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar8 == 2)" (( "(") (binary_expression "iVar8 == 2" (identifier "iVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n      }" ({ "{") (expression_statement "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" (identifier "FUN_00038b00") (argument_list "(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (identifier "iVar13") (, ",") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")) () ")"))) (; ";")) (if_statement "if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" (if "if") (parenthesized_expression "(DAT_00088e50 == 0)" (( "(") (binary_expression "DAT_00088e50 == 0" (identifier "DAT_00088e50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" ({ "{") (expression_statement "DAT_00088e54 = DAT_00088e54 + -1;" (assignment_expression "DAT_00088e54 = DAT_00088e54 + -1" (identifier "DAT_00088e54") (= "=") (binary_expression "DAT_00088e54 + -1" (identifier "DAT_00088e54") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" (else "else") (compound_statement "{\n        if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }\n        if (iVar8 == 0) {\n          return 0;\n        }\n      }" ({ "{") (if_statement "if (DAT_00088e50 == 0) {\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" (if "if") (parenthesized_expression "(DAT_00088e50 == 0)" (( "(") (binary_expression "DAT_00088e50 == 0" (identifier "DAT_00088e50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_00088e54 = DAT_00088e54 + -1;\n        }" ({ "{") (expression_statement "DAT_00088e54 = DAT_00088e54 + -1;" (assignment_expression "DAT_00088e54 = DAT_00088e54 + -1" (identifier "DAT_00088e54") (= "=") (binary_expression "DAT_00088e54 + -1" (identifier "DAT_00088e54") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (if_statement "if (iVar8 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (if_statement "if (*param_1 != 0) {\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }" (if "if") (parenthesized_expression "(*param_1 != 0)" (( "(") (binary_expression "*param_1 != 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined1 *)(param_1 + 4) = 0x13;\n        return 1;\n      }" ({ "{") (expression_statement "*(undefined1 *)(param_1 + 4) = 0x13;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 0x13" (pointer_expression "*(undefined1 *)(param_1 + 4)" (* "*") (cast_expression "(undefined1 *)(param_1 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0x13")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" (identifier "iVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar11 = (int *)FUN_0003b610(iVar13);" (assignment_expression "piVar11 = (int *)FUN_0003b610(iVar13)" (identifier "piVar11") (= "=") (cast_expression "(int *)FUN_0003b610(iVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003b610(iVar13)" (identifier "FUN_0003b610") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(iVar13)" (identifier "puVar7") (= "=") (cast_expression "(undefined *)FUN_00038ac0(iVar13)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00038ac0(iVar13)" (identifier "FUN_00038ac0") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (if_statement "if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }" (if "if") (parenthesized_expression "(puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (binary_expression "puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "puVar7") (== "==") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180"))) () ")")) (compound_statement "{\n        uVar2 = param_1[2];\n        iVar13 = param_1[3];\n        *param_1 = *piVar11;\n        param_1[1] = piVar11[1];\n        param_1[2] = piVar11[2];\n        param_1[3] = piVar11[3];\n        iVar8 = piVar11[4];\n        puVar1 = (uint *)(param_1 + 2);\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + uVar2;\n        param_1[4] = iVar8;\n        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n        iVar6 = DAT_00080558;\n        goto code_r0x00049f18;\n      }" ({ "{") (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" (identifier "uVar2") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" (identifier "iVar13") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*param_1 = *piVar11;" (assignment_expression "*param_1 = *piVar11" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "param_1[1] = piVar11[1];" (assignment_expression "param_1[1] = piVar11[1]" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1[2] = piVar11[2];" (assignment_expression "param_1[2] = piVar11[2]" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[3] = piVar11[3];" (assignment_expression "param_1[3] = piVar11[3]" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar8 = piVar11[4];" (assignment_expression "iVar8 = piVar11[4]" (identifier "iVar8") (= "=") (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar1 = (uint *)(param_1 + 2);" (assignment_expression "puVar1 = (uint *)(param_1 + 2)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(param_1 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" (identifier "uVar5") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*puVar1 = *puVar1 + uVar2;" (assignment_expression "*puVar1 = *puVar1 + uVar2" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 + uVar2" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "param_1[4] = iVar8;" (assignment_expression "param_1[4] = iVar8" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);" (assignment_expression "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (binary_expression "param_1[3] + iVar13" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "iVar13")) (+ "+") (cast_expression "(uint)CARRY4(uVar5,uVar2)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,uVar2)" (identifier "CARRY4") (argument_list "(uVar5,uVar2)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar2") () ")")))))) (; ";")) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" (identifier "iVar6") (= "=") (identifier "DAT_00080558")) (; ";")) (goto_statement "goto code_r0x00049f18;" (goto "goto") (statement_identifier "code_r0x00049f18") (; ";")) (} "}"))) (if_statement "if ((char)piVar11[4] == '\x03') {\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }" (if "if") (parenthesized_expression "((char)piVar11[4] == '\x03')" (( "(") (binary_expression "(char)piVar11[4] == '\x03'" (cast_expression "(char)piVar11[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]"))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n        __s1 = (char *)FUN_00038a80(*piVar11);\n        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");\n        if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }\n      }" ({ "{") (expression_statement "__s1 = (char *)FUN_00038a80(*piVar11);" (assignment_expression "__s1 = (char *)FUN_00038a80(*piVar11)" (identifier "__s1") (= "=") (cast_expression "(char *)FUN_00038a80(*piVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00038a80(*piVar11)" (identifier "FUN_00038a80") (argument_list "(*piVar11)" (( "(") (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) () ")"))))) (; ";")) (expression_statement "iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");" (assignment_expression "iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_")" (identifier "iVar8") (= "=") (call_expression "strcmp(__s1,"_GLOBAL_OFFSET_TABLE_")" (identifier "strcmp") (argument_list "(__s1,"_GLOBAL_OFFSET_TABLE_")" (( "(") (identifier "__s1") (, ",") (string_literal ""_GLOBAL_OFFSET_TABLE_"" (" """) (string_content "_GLOBAL_OFFSET_TABLE_") (" """)) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n          iVar13 = *piVar11;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar13 = *piVar11;\n        }" ({ "{") (expression_statement "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" (identifier "iVar13") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*param_1 = iVar13;" (assignment_expression "*param_1 = iVar13" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 3" (pointer_expression "*(undefined1 *)(param_1 + 4)" (* "*") (cast_expression "(undefined1 *)(param_1 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "3")) (; ";")) (goto_statement "goto code_r0x0004a395;" (goto "goto") (statement_identifier "code_r0x0004a395") (; ";"))) (case_statement "case 0x1f:\n      iVar8 = FUN_0003b610(param_1[1]);\n      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;\n      iVar8 = param_1[1];\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }\n      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;\n      iVar13 = DAT_00088e74;\n      if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }\n      DAT_00088e74 = iVar13;\n      iVar13 = param_1[1];\n      local_44 = iVar13;\n      local_48 = (int *)FUN_0003b610(iVar13);\n      puVar7 = (undefined *)FUN_00038ac0(iVar13);\n      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;\n      goto code_r0x0004a379;" (case "case") (number_literal "0x1f") (: ":") (expression_statement "iVar8 = FUN_0003b610(param_1[1]);" (assignment_expression "iVar8 = FUN_0003b610(param_1[1])" (identifier "iVar8") (= "=") (call_expression "FUN_0003b610(param_1[1])" (identifier "FUN_0003b610") (argument_list "(param_1[1])" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;" (if "if") (parenthesized_expression "(*(char *)(iVar8 + 0x10) == '\x05')" (( "(") (binary_expression "*(char *)(iVar8 + 0x10) == '\x05'" (pointer_expression "*(char *)(iVar8 + 0x10)" (* "*") (cast_expression "(char *)(iVar8 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";"))) (expression_statement "iVar8 = param_1[1];" (assignment_expression "iVar8 = param_1[1]" (identifier "iVar8") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" (identifier "FUN_0003b610") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" (identifier "iVar6") (= "=") (call_expression "FUN_00049de0()" (identifier "FUN_00049de0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }\n      else if (iVar6 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar6 == 2)" (( "(") (binary_expression "iVar6 == 2" (identifier "iVar6") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      }" ({ "{") (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (identifier "FUN_00038b00") (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (identifier "iVar8") (, ",") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")) () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar6 == 0) {\n        return 0;\n      }" (else "else") (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))))) (if_statement "if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558]))" (( "(") (binary_expression "(-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(-1 < DAT_00080558)" (( "(") (binary_expression "-1 < DAT_00080558" (number_literal "-1") (< "<") (identifier "DAT_00080558")) () ")")) (&& "&&") (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" (( "(") (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" (identifier "iVar13") (!= "!=") (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "DAT_00080558") (] "]"))) () ")"))) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";"))) (expression_statement "iVar13 = DAT_00088e74;" (assignment_expression "iVar13 = DAT_00088e74" (identifier "iVar13") (= "=") (identifier "DAT_00088e74")) (; ";")) (if_statement "if (DAT_00088e50 == 0) {\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }" (if "if") (parenthesized_expression "(DAT_00088e50 == 0)" (( "(") (binary_expression "DAT_00088e50 == 0" (identifier "DAT_00088e50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar13 = *param_1;\n        if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }\n      }" ({ "{") (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" (identifier "iVar13") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (DAT_00088e74 != 0) {\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }" (if "if") (parenthesized_expression "(DAT_00088e74 != 0)" (( "(") (binary_expression "DAT_00088e74 != 0" (identifier "DAT_00088e74") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uStack_20 = 0x1f;\n          iStack_30 = *param_1;\n          iStack_2c = DAT_00088e74;\n          iVar13 = FUN_00021220(&iStack_30);\n        }" ({ "{") (expression_statement "uStack_20 = 0x1f;" (assignment_expression "uStack_20 = 0x1f" (identifier "uStack_20") (= "=") (number_literal "0x1f")) (; ";")) (expression_statement "iStack_30 = *param_1;" (assignment_expression "iStack_30 = *param_1" (identifier "iStack_30") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iStack_2c = DAT_00088e74;" (assignment_expression "iStack_2c = DAT_00088e74" (identifier "iStack_2c") (= "=") (identifier "DAT_00088e74")) (; ";")) (expression_statement "iVar13 = FUN_00021220(&iStack_30);" (assignment_expression "iVar13 = FUN_00021220(&iStack_30)" (identifier "iVar13") (= "=") (call_expression "FUN_00021220(&iStack_30)" (identifier "FUN_00021220") (argument_list "(&iStack_30)" (( "(") (pointer_expression "&iStack_30" (& "&") (identifier "iStack_30")) () ")")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "DAT_00088e74 = iVar13;" (assignment_expression "DAT_00088e74 = iVar13" (identifier "DAT_00088e74") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "iVar13 = param_1[1];" (assignment_expression "iVar13 = param_1[1]" (identifier "iVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_44 = iVar13;" (assignment_expression "local_44 = iVar13" (identifier "local_44") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "local_48 = (int *)FUN_0003b610(iVar13);" (assignment_expression "local_48 = (int *)FUN_0003b610(iVar13)" (identifier "local_48") (= "=") (cast_expression "(int *)FUN_0003b610(iVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003b610(iVar13)" (identifier "FUN_0003b610") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(iVar13)" (identifier "puVar7") (= "=") (cast_expression "(undefined *)FUN_00038ac0(iVar13)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00038ac0(iVar13)" (identifier "FUN_00038ac0") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (if_statement "if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;" (if "if") (parenthesized_expression "(puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (binary_expression "puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "puVar7") (== "==") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180"))) () ")")) (goto_statement "goto code_r0x0004a4cf;" (goto "goto") (statement_identifier "code_r0x0004a4cf") (; ";"))) (goto_statement "goto code_r0x0004a379;" (goto "goto") (statement_identifier "code_r0x0004a379") (; ";"))) (case_statement "case 0x30:" (case "case") (number_literal "0x30") (: ":")) (case_statement "case 0x31:" (case "case") (number_literal "0x31") (: ":")) (case_statement "case 0x32:" (case "case") (number_literal "0x32") (: ":")) (case_statement "case 0x33:" (case "case") (number_literal "0x33") (: ":")) (case_statement "case 0x34:" (case "case") (number_literal "0x34") (: ":")) (case_statement "case 0x35:" (case "case") (number_literal "0x35") (: ":")) (case_statement "case 0x36:" (case "case") (number_literal "0x36") (: ":")) (case_statement "case 0x37:" (case "case") (number_literal "0x37") (: ":")) (case_statement "case 0x38:" (case "case") (number_literal "0x38") (: ":")) (case_statement "case 0x39:" (case "case") (number_literal "0x39") (: ":")) (case_statement "case 0x3a:" (case "case") (number_literal "0x3a") (: ":")) (case_statement "case 0x3b:\n      goto code_r0x00049f90;" (case "case") (number_literal "0x3b") (: ":") (goto_statement "goto code_r0x00049f90;" (goto "goto") (statement_identifier "code_r0x00049f90") (; ";"))) (case_statement "case 0x3c:\n      goto code_r0x00049fa0;" (case "case") (number_literal "0x3c") (: ":") (goto_statement "goto code_r0x00049fa0;" (goto "goto") (statement_identifier "code_r0x00049fa0") (; ";"))) (case_statement "case 0x3d:\n      iVar8 = *param_1;\n      DAT_00088e4c = 1;\n      DAT_00088e50 = DAT_00088e50 + 1;\n      FUN_0003b610(iVar8);\n      iVar6 = FUN_00049de0();\n      if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }\n      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }\n      goto LAB_0004a3f0;" (case "case") (number_literal "0x3d") (: ":") (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "DAT_00088e4c = 1;" (assignment_expression "DAT_00088e4c = 1" (identifier "DAT_00088e4c") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_00088e50 = DAT_00088e50 + 1;" (assignment_expression "DAT_00088e50 = DAT_00088e50 + 1" (identifier "DAT_00088e50") (= "=") (binary_expression "DAT_00088e50 + 1" (identifier "DAT_00088e50") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" (identifier "FUN_0003b610") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" (identifier "iVar6") (= "=") (call_expression "FUN_00049de0()" (identifier "FUN_00049de0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 2) {\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }\n      else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar6 == 2)" (( "(") (binary_expression "iVar6 == 2" (identifier "iVar6") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n        DAT_00088e50 = DAT_00088e50 + -1;\n        iVar6 = 1;\n      }" ({ "{") (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (identifier "FUN_00038b00") (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (identifier "iVar8") (, ",") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")) () ")"))) (; ";")) (expression_statement "DAT_00088e50 = DAT_00088e50 + -1;" (assignment_expression "DAT_00088e50 = DAT_00088e50 + -1" (identifier "DAT_00088e50") (= "=") (binary_expression "DAT_00088e50 + -1" (identifier "DAT_00088e50") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" (identifier "iVar6") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }" (else "else") (compound_statement "{\n        DAT_00088e50 = DAT_00088e50 + -1;\n        if (iVar6 == 0) {\n          return 0;\n        }\n      }" ({ "{") (expression_statement "DAT_00088e50 = DAT_00088e50 + -1;" (assignment_expression "DAT_00088e50 = DAT_00088e50 + -1" (identifier "DAT_00088e50") (= "=") (binary_expression "DAT_00088e50 + -1" (identifier "DAT_00088e50") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar6 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }" (if "if") (parenthesized_expression "((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68))" (( "(") (binary_expression "(((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)" (parenthesized_expression "(((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64))" (( "(") (binary_expression "((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&\n          (local_44 == DAT_00088e64)" (parenthesized_expression "((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558]))" (( "(") (binary_expression "(DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(DAT_00080558 < 0)" (( "(") (binary_expression "DAT_00080558 < 0" (identifier "DAT_00080558") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar13 == (&DAT_00089038)[DAT_00080558])" (( "(") (binary_expression "iVar13 == (&DAT_00089038)[DAT_00080558]" (identifier "iVar13") (== "==") (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "DAT_00080558") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_44 == DAT_00088e64)" (( "(") (binary_expression "local_44 == DAT_00088e64" (identifier "local_44") (== "==") (identifier "DAT_00088e64")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_48 == DAT_00088e68)" (( "(") (binary_expression "local_48 == DAT_00088e68" (identifier "local_48") (== "==") (identifier "DAT_00088e68")) () ")"))) () ")")) (compound_statement "{\n        iVar13 = *param_1;\n        local_44 = iVar6;\n        iStack_40 = iVar13;\n        local_48 = (int *)FUN_0003b610(iVar13);\n        puVar7 = (undefined *)FUN_00038ac0(iVar13);\n        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }\n        if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }\n        param_1[1] = 0;\n        *(undefined1 *)(param_1 + 4) = 3;\n        *param_1 = iStack_40;\n        return local_44;\n      }" ({ "{") (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" (identifier "iVar13") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_44 = iVar6;" (assignment_expression "local_44 = iVar6" (identifier "local_44") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iStack_40 = iVar13;" (assignment_expression "iStack_40 = iVar13" (identifier "iStack_40") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "local_48 = (int *)FUN_0003b610(iVar13);" (assignment_expression "local_48 = (int *)FUN_0003b610(iVar13)" (identifier "local_48") (= "=") (cast_expression "(int *)FUN_0003b610(iVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003b610(iVar13)" (identifier "FUN_0003b610") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (expression_statement "puVar7 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(iVar13)" (identifier "puVar7") (= "=") (cast_expression "(undefined *)FUN_00038ac0(iVar13)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00038ac0(iVar13)" (identifier "FUN_00038ac0") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (if_statement "if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }" (if "if") (parenthesized_expression "(puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (binary_expression "puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "puVar7") (== "==") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180"))) () ")")) (compound_statement "{\n          uVar2 = param_1[2];\n          iVar13 = param_1[3];\n          *param_1 = *local_48;\n          param_1[1] = local_48[1];\n          param_1[2] = local_48[2];\n          param_1[3] = local_48[3];\n          iVar8 = local_48[4];\n          puVar1 = (uint *)(param_1 + 2);\n          uVar5 = *puVar1;\n          *puVar1 = *puVar1 + uVar2;\n          param_1[4] = iVar8;\n          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);\n          return local_44;\n        }" ({ "{") (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" (identifier "uVar2") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" (identifier "iVar13") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*param_1 = *local_48;" (assignment_expression "*param_1 = *local_48" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "*local_48" (* "*") (identifier "local_48"))) (; ";")) (expression_statement "param_1[1] = local_48[1];" (assignment_expression "param_1[1] = local_48[1]" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "local_48[1]" (identifier "local_48") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1[2] = local_48[2];" (assignment_expression "param_1[2] = local_48[2]" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_48[2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[3] = local_48[3];" (assignment_expression "param_1[3] = local_48[3]" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "local_48[3]" (identifier "local_48") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar8 = local_48[4];" (assignment_expression "iVar8 = local_48[4]" (identifier "iVar8") (= "=") (subscript_expression "local_48[4]" (identifier "local_48") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar1 = (uint *)(param_1 + 2);" (assignment_expression "puVar1 = (uint *)(param_1 + 2)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(param_1 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" (identifier "uVar5") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*puVar1 = *puVar1 + uVar2;" (assignment_expression "*puVar1 = *puVar1 + uVar2" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 + uVar2" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "param_1[4] = iVar8;" (assignment_expression "param_1[4] = iVar8" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);" (assignment_expression "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (binary_expression "param_1[3] + iVar13" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "iVar13")) (+ "+") (cast_expression "(uint)CARRY4(uVar5,uVar2)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,uVar2)" (identifier "CARRY4") (argument_list "(uVar5,uVar2)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar2") () ")")))))) (; ";")) (return_statement "return local_44;" (return "return") (identifier "local_44") (; ";")) (} "}"))) (if_statement "if ((char)local_48[4] == '\x03') {\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }" (if "if") (parenthesized_expression "((char)local_48[4] == '\x03')" (( "(") (binary_expression "(char)local_48[4] == '\x03'" (cast_expression "(char)local_48[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_48[4]" (identifier "local_48") ([ "[") (number_literal "4") (] "]"))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n          uVar15 = auStack_4c < (undefined1 *)0xc;\n          uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n          pbVar12 = (byte *)FUN_00038a80(*local_48);\n          iVar13 = 0x16;\n          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n          do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);\n          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }\n        }" ({ "{") (expression_statement "uVar15 = auStack_4c < (undefined1 *)0xc;" (assignment_expression "uVar15 = auStack_4c < (undefined1 *)0xc" (identifier "uVar15") (= "=") (binary_expression "auStack_4c < (undefined1 *)0xc" (identifier "auStack_4c") (< "<") (cast_expression "(undefined1 *)0xc" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc")))) (; ";")) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x58" (identifier "uVar17") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x58" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x58")))) (; ";")) (expression_statement "pbVar12 = (byte *)FUN_00038a80(*local_48);" (assignment_expression "pbVar12 = (byte *)FUN_00038a80(*local_48)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)FUN_00038a80(*local_48)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00038a80(*local_48)" (identifier "FUN_00038a80") (argument_list "(*local_48)" (( "(") (pointer_expression "*local_48" (* "*") (identifier "local_48")) () ")"))))) (; ";")) (expression_statement "iVar13 = 0x16;" (assignment_expression "iVar13 = 0x16" (identifier "iVar13") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_"" (identifier "pbVar14") (= "=") (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""_GLOBAL_OFFSET_TABLE_"" (" """) (string_content "_GLOBAL_OFFSET_TABLE_") (" """)))) (; ";")) (do_statement "do {\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          } while ((bool)uVar17);" (do "do") (compound_statement "{\n            if (iVar13 == 0) break;\n            iVar13 = iVar13 + -1;\n            uVar15 = *pbVar12 < *pbVar14;\n            uVar17 = *pbVar12 == *pbVar14;\n            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar13 == 0) break;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar15 = *pbVar12 < *pbVar14;" (assignment_expression "uVar15 = *pbVar12 < *pbVar14" (identifier "uVar15") (= "=") (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "uVar17 = *pbVar12 == *pbVar14;" (assignment_expression "uVar17 = *pbVar12 == *pbVar14" (identifier "uVar17") (= "=") (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar18 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar17)" (( "(") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")) () ")")) (; ";")) (if_statement "if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n            iStack_40 = *local_48;\n          }" (if "if") (parenthesized_expression "((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15)" (( "(") (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" (( "(") (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" (! "!") (cast_expression "(bool)uVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar15"))) (&& "&&") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) () ")")) (== "==") (cast_expression "(bool)uVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar15"))) () ")")) (compound_statement "{\n            iStack_40 = *local_48;\n          }" ({ "{") (expression_statement "iStack_40 = *local_48;" (assignment_expression "iStack_40 = *local_48" (identifier "iStack_40") (= "=") (pointer_expression "*local_48" (* "*") (identifier "local_48"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 3" (pointer_expression "*(undefined1 *)(param_1 + 4)" (* "*") (cast_expression "(undefined1 *)(param_1 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*param_1 = iStack_40;" (assignment_expression "*param_1 = iStack_40" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iStack_40")) (; ";")) (return_statement "return local_44;" (return "return") (identifier "local_44") (; ";")) (} "}"))) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";"))) (} "}"))) (} "}"))) (expression_statement "iVar8 = *param_1;" (assignment_expression "iVar8 = *param_1" (identifier "iVar8") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (iVar8 != 0) {\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00049e58:\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n  }" ({ "{") (labeled_statement "LAB_00049e58:\n    FUN_0003b610(iVar8);" (statement_identifier "LAB_00049e58") (: ":") (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" (identifier "FUN_0003b610") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";"))) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" (identifier "iVar6") (= "=") (call_expression "FUN_00049de0()" (identifier "FUN_00049de0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }\n    else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }" (if "if") (parenthesized_expression "(iVar6 == 2)" (( "(") (binary_expression "iVar6 == 2" (identifier "iVar6") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n      bVar4 = *(byte *)(param_1 + 4);\n    }" ({ "{") (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (identifier "FUN_00038b00") (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (identifier "iVar8") (, ",") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")) () ")"))) (; ";")) (expression_statement "bVar4 = *(byte *)(param_1 + 4);" (assignment_expression "bVar4 = *(byte *)(param_1 + 4)" (identifier "bVar4") (= "=") (pointer_expression "*(byte *)(param_1 + 4)" (* "*") (cast_expression "(byte *)(param_1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }" (else "else") (compound_statement "{\n      if (iVar6 == 0) {\n        return 0;\n      }\n      bVar4 = *(byte *)(param_1 + 4);\n    }" ({ "{") (if_statement "if (iVar6 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar4 = *(byte *)(param_1 + 4);" (assignment_expression "bVar4 = *(byte *)(param_1 + 4)" (identifier "bVar4") (= "=") (pointer_expression "*(byte *)(param_1 + 4)" (* "*") (cast_expression "(byte *)(param_1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (if_statement "if ((byte)(bVar4 - 0x13) < 2) {\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }\n  else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }" (if "if") (parenthesized_expression "((byte)(bVar4 - 0x13) < 2)" (( "(") (binary_expression "(byte)(bVar4 - 0x13) < 2" (call_expression "(byte)(bVar4 - 0x13)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar4 - 0x13)" (( "(") (binary_expression "bVar4 - 0x13" (identifier "bVar4") (- "-") (number_literal "0x13")) () ")"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n    local_44 = DAT_00088e64;\n    local_48 = DAT_00088e68;\n    if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }\n  }" ({ "{") (expression_statement "local_44 = DAT_00088e64;" (assignment_expression "local_44 = DAT_00088e64" (identifier "local_44") (= "=") (identifier "DAT_00088e64")) (; ";")) (expression_statement "local_48 = DAT_00088e68;" (assignment_expression "local_48 = DAT_00088e68" (identifier "local_48") (= "=") (identifier "DAT_00088e68")) (; ";")) (if_statement "if (-1 < DAT_00080558) {\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" (if "if") (parenthesized_expression "(-1 < DAT_00080558)" (( "(") (binary_expression "-1 < DAT_00080558" (number_literal "-1") (< "<") (identifier "DAT_00080558")) () ")")) (compound_statement "{\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n      goto LAB_0004a47d;\n    }" ({ "{") (if_statement "if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" (( "(") (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" (identifier "iVar13") (!= "!=") (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "DAT_00080558") (] "]"))) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";"))) (goto_statement "goto LAB_0004a47d;" (goto "goto") (statement_identifier "LAB_0004a47d") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }" (else "else") (compound_statement "{\n    if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }\n    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;\nLAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;\n  }" ({ "{") (if_statement "if (-1 < DAT_00080558) {\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }" (if "if") (parenthesized_expression "(-1 < DAT_00080558)" (( "(") (binary_expression "-1 < DAT_00080558" (number_literal "-1") (< "<") (identifier "DAT_00080558")) () ")")) (compound_statement "{\nLAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;\n    }" ({ "{") (labeled_statement "LAB_0004a3ce:\n      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;" (statement_identifier "LAB_0004a3ce") (: ":") (if_statement "if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" (( "(") (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" (identifier "iVar13") (!= "!=") (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "DAT_00080558") (] "]"))) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";")))) (} "}"))) (if_statement "if (local_44 != DAT_00088e64) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "(local_44 != DAT_00088e64)" (( "(") (binary_expression "local_44 != DAT_00088e64" (identifier "local_44") (!= "!=") (identifier "DAT_00088e64")) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";"))) (labeled_statement "LAB_0004a47d:\n    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;" (statement_identifier "LAB_0004a47d") (: ":") (if_statement "if (local_48 != DAT_00088e68) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "(local_48 != DAT_00088e68)" (( "(") (binary_expression "local_48 != DAT_00088e68" (identifier "local_48") (!= "!=") (identifier "DAT_00088e68")) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";")))) (} "}")))) (expression_statement "iVar8 = param_1[1];" (assignment_expression "iVar8 = param_1[1]" (identifier "iVar8") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar8 != 0) {\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0003b610(iVar8);\n    iVar6 = FUN_00049de0();\n    if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }\n  }" ({ "{") (expression_statement "FUN_0003b610(iVar8);" (call_expression "FUN_0003b610(iVar8)" (identifier "FUN_0003b610") (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "iVar6 = FUN_00049de0();" (assignment_expression "iVar6 = FUN_00049de0()" (identifier "iVar6") (= "=") (call_expression "FUN_00049de0()" (identifier "FUN_00049de0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar6 == 2) {\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }\n    else if (iVar6 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == 2)" (( "(") (binary_expression "iVar6 == 2" (identifier "iVar6") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);\n    }" ({ "{") (expression_statement "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (identifier "FUN_00038b00") (argument_list "(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (identifier "iVar8") (, ",") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")) () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar6 == 0) {\n      return 0;\n    }" (else "else") (if_statement "if (iVar6 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))))) (} "}"))) (if_statement "if ((char)param_1[4] == '\x13') {\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }\n  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "((char)param_1[4] == '\x13')" (( "(") (binary_expression "(char)param_1[4] == '\x13'" (cast_expression "(char)param_1[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (== "==") (char_literal "'\x13'" (' "'") (escape_sequence "\x13") (' "'"))) () ")")) (compound_statement "{\n    local_48 = DAT_00088e68;\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;\n  }" ({ "{") (expression_statement "local_48 = DAT_00088e68;" (assignment_expression "local_48 = DAT_00088e68" (identifier "local_48") (= "=") (identifier "DAT_00088e68")) (; ";")) (if_statement "if (DAT_00080558 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(DAT_00080558 < 0)" (( "(") (binary_expression "DAT_00080558 < 0" (identifier "DAT_00080558") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "((&DAT_00089038)[DAT_00080558] != iVar13)" (( "(") (binary_expression "(&DAT_00089038)[DAT_00080558] != iVar13" (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "DAT_00080558") (] "]")) (!= "!=") (identifier "iVar13")) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";"))) (} "}")) (else_clause "else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;" (else "else") (if_statement "if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "(((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64))" (( "(") (binary_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||\n          (local_44 != DAT_00088e64)" (parenthesized_expression "((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558]))" (( "(") (binary_expression "(-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])" (parenthesized_expression "(-1 < DAT_00080558)" (( "(") (binary_expression "-1 < DAT_00080558" (number_literal "-1") (< "<") (identifier "DAT_00080558")) () ")")) (&& "&&") (parenthesized_expression "(iVar13 != (&DAT_00089038)[DAT_00080558])" (( "(") (binary_expression "iVar13 != (&DAT_00089038)[DAT_00080558]" (identifier "iVar13") (!= "!=") (subscript_expression "(&DAT_00089038)[DAT_00080558]" (parenthesized_expression "(&DAT_00089038)" (( "(") (pointer_expression "&DAT_00089038" (& "&") (identifier "DAT_00089038")) () ")")) ([ "[") (identifier "DAT_00080558") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_44 != DAT_00088e64)" (( "(") (binary_expression "local_44 != DAT_00088e64" (identifier "local_44") (!= "!=") (identifier "DAT_00088e64")) () ")"))) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";"))))) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" (identifier "iVar6") (= "=") (identifier "DAT_00080558")) (; ";")) (if_statement "if (local_48 != DAT_00088e68) goto LAB_0004a3f0;" (if "if") (parenthesized_expression "(local_48 != DAT_00088e68)" (( "(") (binary_expression "local_48 != DAT_00088e68" (identifier "local_48") (!= "!=") (identifier "DAT_00088e68")) () ")")) (goto_statement "goto LAB_0004a3f0;" (goto "goto") (statement_identifier "LAB_0004a3f0") (; ";"))) (goto_statement "goto code_r0x00049f18;" (goto "goto") (statement_identifier "code_r0x00049f18") (; ";")) (labeled_statement "code_r0x00049f90:\n  if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }" (statement_identifier "code_r0x00049f90") (: ":") (if_statement "if (DAT_00088e40 == 1) {\n    DAT_00088e40 = uVar5;\n  }" (if "if") (parenthesized_expression "(DAT_00088e40 == 1)" (( "(") (binary_expression "DAT_00088e40 == 1" (identifier "DAT_00088e40") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    DAT_00088e40 = uVar5;\n  }" ({ "{") (expression_statement "DAT_00088e40 = uVar5;" (assignment_expression "DAT_00088e40 = uVar5" (identifier "DAT_00088e40") (= "=") (identifier "uVar5")) (; ";")) (} "}")))) (labeled_statement "code_r0x00049fa0:\n  iVar13 = FUN_0003b610(*param_1);" (statement_identifier "code_r0x00049fa0") (: ":") (expression_statement "iVar13 = FUN_0003b610(*param_1);" (assignment_expression "iVar13 = FUN_0003b610(*param_1)" (identifier "iVar13") (= "=") (call_expression "FUN_0003b610(*param_1)" (identifier "FUN_0003b610") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";"))) (if_statement "if (*(char *)(iVar13 + 0x10) == '\x05') {\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar13 + 0x10) == '\x05')" (( "(") (binary_expression "*(char *)(iVar13 + 0x10) == '\x05'" (pointer_expression "*(char *)(iVar13 + 0x10)" (* "*") (cast_expression "(char *)(iVar13 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\nLAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);\n    FUN_0002bd60(uVar9);\n    return 0;\n  }" ({ "{") (labeled_statement "LAB_0004a3f0:\n    uVar9 = dcgettext(0,"invalid use of register",5);" (statement_identifier "LAB_0004a3f0") (: ":") (expression_statement "uVar9 = dcgettext(0,"invalid use of register",5);" (assignment_expression "uVar9 = dcgettext(0,"invalid use of register",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"invalid use of register",5)" (identifier "dcgettext") (argument_list "(0,"invalid use of register",5)" (( "(") (number_literal "0") (, ",") (string_literal ""invalid use of register"" (" """) (string_content "invalid use of register") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002bd60(uVar9);" (call_expression "FUN_0002bd60(uVar9)" (identifier "FUN_0002bd60") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" (identifier "iVar13") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "FUN_0003b610(iVar13);" (call_expression "FUN_0003b610(iVar13)" (identifier "FUN_0003b610") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))) (; ";")) (expression_statement "iVar8 = FUN_00049de0();" (assignment_expression "iVar8 = FUN_00049de0()" (identifier "iVar8") (= "=") (call_expression "FUN_00049de0()" (identifier "FUN_00049de0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar7 = PTR__bfd_std_section_0007ffb0;" (assignment_expression "puVar7 = PTR__bfd_std_section_0007ffb0" (identifier "puVar7") (= "=") (identifier "PTR__bfd_std_section_0007ffb0")) (; ";")) (if_statement "if (iVar8 == 2) {\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }\n  else if (iVar8 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar8 == 2)" (( "(") (binary_expression "iVar8 == 2" (identifier "iVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);\n  }" ({ "{") (expression_statement "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);" (call_expression "FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" (identifier "FUN_00038b00") (argument_list "(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (identifier "iVar13") (, ",") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")) () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar8 == 0) {\n    return 0;\n  }" (else "else") (if_statement "if (iVar8 == 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))))) (expression_statement "iVar13 = *param_1;" (assignment_expression "iVar13 = *param_1" (identifier "iVar13") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_44 = iVar13;" (assignment_expression "local_44 = iVar13" (identifier "local_44") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "local_48 = (int *)FUN_0003b610(iVar13);" (assignment_expression "local_48 = (int *)FUN_0003b610(iVar13)" (identifier "local_48") (= "=") (cast_expression "(int *)FUN_0003b610(iVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003b610(iVar13)" (identifier "FUN_0003b610") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (expression_statement "puVar10 = (undefined *)FUN_00038ac0(iVar13);" (assignment_expression "puVar10 = (undefined *)FUN_00038ac0(iVar13)" (identifier "puVar10") (= "=") (cast_expression "(undefined *)FUN_00038ac0(iVar13)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00038ac0(iVar13)" (identifier "FUN_00038ac0") (argument_list "(iVar13)" (( "(") (identifier "iVar13") () ")"))))) (; ";")) (if_statement "if (puVar10 != puVar7 + 0x180) {\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }" (if "if") (parenthesized_expression "(puVar10 != puVar7 + 0x180)" (( "(") (binary_expression "puVar10 != puVar7 + 0x180" (identifier "puVar10") (!= "!=") (binary_expression "puVar7 + 0x180" (identifier "puVar7") (+ "+") (number_literal "0x180"))) () ")")) (compound_statement "{\ncode_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }\n    param_1[1] = 0;\n    *(undefined1 *)(param_1 + 4) = 3;\n    *param_1 = local_44;\ncode_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }\n    goto code_r0x00049f28;\n  }" ({ "{") (labeled_statement "code_r0x0004a379:\n    if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }" (statement_identifier "code_r0x0004a379") (: ":") (if_statement "if ((char)local_48[4] == '\x03') {\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }" (if "if") (parenthesized_expression "((char)local_48[4] == '\x03')" (( "(") (binary_expression "(char)local_48[4] == '\x03'" (cast_expression "(char)local_48[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_48[4]" (identifier "local_48") ([ "[") (number_literal "4") (] "]"))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n      uVar15 = auStack_4c < (undefined1 *)0xc;\n      uVar17 = &stack0x00000000 == (undefined1 *)0x58;\n      pbVar12 = (byte *)FUN_00038a80(*local_48);\n      iVar13 = 0x16;\n      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";\n      do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);\n      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }\n    }" ({ "{") (expression_statement "uVar15 = auStack_4c < (undefined1 *)0xc;" (assignment_expression "uVar15 = auStack_4c < (undefined1 *)0xc" (identifier "uVar15") (= "=") (binary_expression "auStack_4c < (undefined1 *)0xc" (identifier "auStack_4c") (< "<") (cast_expression "(undefined1 *)0xc" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc")))) (; ";")) (expression_statement "uVar17 = &stack0x00000000 == (undefined1 *)0x58;" (assignment_expression "uVar17 = &stack0x00000000 == (undefined1 *)0x58" (identifier "uVar17") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x58" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x58" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x58")))) (; ";")) (expression_statement "pbVar12 = (byte *)FUN_00038a80(*local_48);" (assignment_expression "pbVar12 = (byte *)FUN_00038a80(*local_48)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)FUN_00038a80(*local_48)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00038a80(*local_48)" (identifier "FUN_00038a80") (argument_list "(*local_48)" (( "(") (pointer_expression "*local_48" (* "*") (identifier "local_48")) () ")"))))) (; ";")) (expression_statement "iVar13 = 0x16;" (assignment_expression "iVar13 = 0x16" (identifier "iVar13") (= "=") (number_literal "0x16")) (; ";")) (expression_statement "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";" (assignment_expression "pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_"" (identifier "pbVar14") (= "=") (cast_expression "(byte *)"_GLOBAL_OFFSET_TABLE_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""_GLOBAL_OFFSET_TABLE_"" (" """) (string_content "_GLOBAL_OFFSET_TABLE_") (" """)))) (; ";")) (do_statement "do {\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while ((bool)uVar17);" (do "do") (compound_statement "{\n        if (iVar13 == 0) break;\n        iVar13 = iVar13 + -1;\n        uVar15 = *pbVar12 < *pbVar14;\n        uVar17 = *pbVar12 == *pbVar14;\n        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar13 == 0) break;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar15 = *pbVar12 < *pbVar14;" (assignment_expression "uVar15 = *pbVar12 < *pbVar14" (identifier "uVar15") (= "=") (binary_expression "*pbVar12 < *pbVar14" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "uVar17 = *pbVar12 == *pbVar14;" (assignment_expression "uVar17 = *pbVar12 == *pbVar14" (identifier "uVar17") (= "=") (binary_expression "*pbVar12 == *pbVar14" (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar18 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar18 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar17)" (( "(") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")) () ")")) (; ";")) (if_statement "if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {\n        local_44 = *local_48;\n      }" (if "if") (parenthesized_expression "((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15)" (( "(") (binary_expression "(!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15" (parenthesized_expression "(!(bool)uVar15 && !(bool)uVar17)" (( "(") (binary_expression "!(bool)uVar15 && !(bool)uVar17" (unary_expression "!(bool)uVar15" (! "!") (cast_expression "(bool)uVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar15"))) (&& "&&") (unary_expression "!(bool)uVar17" (! "!") (cast_expression "(bool)uVar17" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar17")))) () ")")) (== "==") (cast_expression "(bool)uVar15" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar15"))) () ")")) (compound_statement "{\n        local_44 = *local_48;\n      }" ({ "{") (expression_statement "local_44 = *local_48;" (assignment_expression "local_44 = *local_48" (identifier "local_44") (= "=") (pointer_expression "*local_48" (* "*") (identifier "local_48"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 4) = 3;" (assignment_expression "*(undefined1 *)(param_1 + 4) = 3" (pointer_expression "*(undefined1 *)(param_1 + 4)" (* "*") (cast_expression "(undefined1 *)(param_1 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "*param_1 = local_44;" (assignment_expression "*param_1 = local_44" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_44")) (; ";")) (labeled_statement "code_r0x0004a395:\n    if (DAT_00080558 < 0) {\n      return 1;\n    }" (statement_identifier "code_r0x0004a395") (: ":") (if_statement "if (DAT_00080558 < 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(DAT_00080558 < 0)" (( "(") (binary_expression "DAT_00080558 < 0" (identifier "DAT_00080558") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))) (goto_statement "goto code_r0x00049f28;" (goto "goto") (statement_identifier "code_r0x00049f28") (; ";")) (} "}"))) (labeled_statement "code_r0x0004a4cf:\n  uVar2 = param_1[2];" (statement_identifier "code_r0x0004a4cf") (: ":") (expression_statement "uVar2 = param_1[2];" (assignment_expression "uVar2 = param_1[2]" (identifier "uVar2") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (expression_statement "iVar13 = param_1[3];" (assignment_expression "iVar13 = param_1[3]" (identifier "iVar13") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*param_1 = *local_48;" (assignment_expression "*param_1 = *local_48" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "*local_48" (* "*") (identifier "local_48"))) (; ";")) (expression_statement "param_1[1] = local_48[1];" (assignment_expression "param_1[1] = local_48[1]" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "local_48[1]" (identifier "local_48") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1[2] = local_48[2];" (assignment_expression "param_1[2] = local_48[2]" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_48[2]" (identifier "local_48") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[3] = local_48[3];" (assignment_expression "param_1[3] = local_48[3]" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "local_48[3]" (identifier "local_48") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar8 = local_48[4];" (assignment_expression "iVar8 = local_48[4]" (identifier "iVar8") (= "=") (subscript_expression "local_48[4]" (identifier "local_48") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar1 = (uint *)(param_1 + 2);" (assignment_expression "puVar1 = (uint *)(param_1 + 2)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(param_1 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" (identifier "uVar5") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*puVar1 = *puVar1 + uVar2;" (assignment_expression "*puVar1 = *puVar1 + uVar2" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 + uVar2" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (+ "+") (identifier "uVar2"))) (; ";")) (expression_statement "iVar6 = DAT_00080558;" (assignment_expression "iVar6 = DAT_00080558" (identifier "iVar6") (= "=") (identifier "DAT_00080558")) (; ";")) (expression_statement "param_1[4] = iVar8;" (assignment_expression "param_1[4] = iVar8" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);" (assignment_expression "param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2)" (binary_expression "param_1[3] + iVar13" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "iVar13")) (+ "+") (cast_expression "(uint)CARRY4(uVar5,uVar2)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,uVar2)" (identifier "CARRY4") (argument_list "(uVar5,uVar2)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar2") () ")")))))) (; ";")) (labeled_statement "code_r0x00049f18:\n  if (iVar6 < 0) {\n    return 1;\n  }" (statement_identifier "code_r0x00049f18") (: ":") (if_statement "if (iVar6 < 0) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(iVar6 < 0)" (( "(") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))) (if_statement "if ((char)param_1[4] != '\x03') {\n    return 1;\n  }" (if "if") (parenthesized_expression "((char)param_1[4] != '\x03')" (( "(") (binary_expression "(char)param_1[4] != '\x03'" (cast_expression "(char)param_1[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (!= "!=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "code_r0x00049f28:\n  if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }" (statement_identifier "code_r0x00049f28") (: ":") (if_statement "if ((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)) {\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }" (if "if") (parenthesized_expression "((((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7))" (( "(") (binary_expression "(((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&\n     (DAT_00089720 != puVar7)" (parenthesized_expression "(((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7))" (( "(") (binary_expression "((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)" (parenthesized_expression "((DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180))" (( "(") (binary_expression "(DAT_00088e50 == 0) &&\n       (puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)" (parenthesized_expression "(DAT_00088e50 == 0)" (( "(") (binary_expression "DAT_00088e50 == 0" (identifier "DAT_00088e50") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)" (( "(") (comma_expression "puVar7 = (undefined *)FUN_00038ac0(*param_1),\n       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180" (assignment_expression "puVar7 = (undefined *)FUN_00038ac0(*param_1)" (identifier "puVar7") (= "=") (cast_expression "(undefined *)FUN_00038ac0(*param_1)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00038ac0(*param_1)" (identifier "FUN_00038ac0") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))))) (, ",") (binary_expression "puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "puVar7") (!= "!=") (binary_expression "PTR__bfd_std_section_0007ffb0 + 0x180" (identifier "PTR__bfd_std_section_0007ffb0") (+ "+") (number_literal "0x180")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_000897ec != puVar7)" (( "(") (binary_expression "DAT_000897ec != puVar7" (identifier "DAT_000897ec") (!= "!=") (identifier "puVar7")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_00089720 != puVar7)" (( "(") (binary_expression "DAT_00089720 != puVar7" (identifier "DAT_00089720") (!= "!=") (identifier "puVar7")) () ")"))) () ")")) (compound_statement "{\n    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;\n  }" ({ "{") (expression_statement "DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;" (assignment_expression "DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1" (identifier "DAT_00088e44") (= "=") (binary_expression "DAT_00088e44 | (DAT_00088e54 != 0) + 1" (identifier "DAT_00088e44") (| "|") (binary_expression "(DAT_00088e54 != 0) + 1" (parenthesized_expression "(DAT_00088e54 != 0)" (( "(") (binary_expression "DAT_00088e54 != 0" (identifier "DAT_00088e54") (!= "!=") (number_literal "0")) () ")")) (+ "+") (number_literal "1")))) (; ";")) (} "}")))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int __regparm3 function_1(type_1 *e)

{
  type_2 *poVar1;
  int *piVar2;
  type_3 var_17;
  type_4 uVar4;
  type_5 uVar5;
  type_2 oVar6;
  type_6 *var_27;
  type_7 var_4;
  type_1 *peVar9;
  int var_9;
  type_8 var_21;
  type_9 *var_3;
  char *pcVar13;
  type_10 var_10;
  type_7 *var_29;
  int var_18;
  type_1 *var_5;
  type_7 *var_30;
  type_11 uVar19;
  bool var_15;
  type_11 uVar21;
  type_7 bVar22;
  type_11 var_28 [4];
  type_1 *var_8;
  type_9 *var_6;
  type_9 *local_40;
  type_1 exp;
  
  bVar22 = 0;
  var_5 = (type_1 *)0x0;
  if (-1 < var_1) {
    var_5 = i.op[var_1].disps;
  }
  if (var_2 == 0) {
    return 1;
  }
  var_6 = (type_9 *)intel_state.base;
  var_8 = (type_1 *)intel_state.index;
  var_4 = e->field_0x10;
  switch((type_10)var_4) {
  default:
    var_3 = e->X_add_symbol;
    if (var_3 != (type_9 *)0x0) goto LAB_00049e58;
LAB_00049e84:
    if (1 < (type_7)(var_4 - 0x13)) {
      if (-1 < var_1) {
LAB_0004a3ce:
        if (var_5 != i.op[var_1].disps) goto LAB_0004a3f0;
      }
      if (var_6 != (type_9 *)intel_state.base) goto LAB_0004a3f0;
      goto LAB_0004a47d;
    }
    var_6 = (type_9 *)intel_state.base;
    var_8 = (type_1 *)intel_state.index;
    if (-1 < var_1) {
      if (var_5 != i.op[var_1].disps) goto LAB_0004a3f0;
      goto LAB_0004a47d;
    }
    break;
  case 2:
    if (e->X_md != 0) {
      var_9 = var_7(e);
      return var_9;
    }
    var_3 = e->X_add_symbol;
    if (var_3 != (type_9 *)0x0) goto LAB_00049e58;
    if (-1 < var_1) goto LAB_0004a3ce;
LAB_0004a47d:
    if (var_8 != (type_1 *)intel_state.index) goto LAB_0004a3f0;
    break;
  case 5:
    var_9 = var_7(e);
    if (var_9 != 2) {
      return var_9;
    }
    var_10 = (type_10)e->X_add_number;
    if (-*(int *)((int)&e->X_add_number + 4) < (int)(type_10)(0xfffe < var_10)) {
                    /* WARNING: Subroutine does not return */
      var_11("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify");
    }
    e->field_0x10 = 2;
    e->X_md = (short)var_10 + 1;
    *(type_12 *)&e->X_add_number = 0;
    *(type_12 *)((int)&e->X_add_number + 4) = 0;
    return 2;
  case 10:
    if (var_1 < 0) {
      var_3 = e->X_add_symbol;
      if (var_3 == (type_9 *)0x0) goto LAB_0004a47d;
LAB_00049e58:
      peVar9 = var_12(var_3);
      var_9 = function_1(peVar9);
      if (var_9 == 2) {
        var_13(var_3,(type_8)(var_14 + 0x180));
        var_4 = e->field_0x10;
      }
      else {
        if (var_9 == 0) {
          return 0;
        }
        var_4 = e->field_0x10;
      }
      goto LAB_00049e84;
    }
    if (intel_state.in_bracket == 0) {
      var_3 = e->X_add_symbol;
      if (var_3 == (type_9 *)0x0) goto LAB_0004a3ce;
      goto LAB_00049e58;
    }
    if (intel_state.in_scale == 0) {
      intel_state.scale_factor._0_4_ = 1;
      intel_state.scale_factor._4_4_ = 0;
    }
    var_3 = e->X_add_symbol;
    intel_state.in_scale = intel_state.in_scale + 1;
    var_5 = var_12(var_3);
    var_9 = function_1(var_5);
    if (var_9 == 2) {
      var_13(var_3,(type_8)(var_14 + 0x180));
      if (var_8 != (type_1 *)0x0) goto LAB_0004a795;
LAB_0004a136:
      var_3 = e->X_op_symbol;
      var_15 = true;
      var_5 = (type_1 *)intel_state.index;
      if (intel_state.index != (type_13 *)0x0) {
        var_5 = var_12(var_3);
        var_3 = e->X_op_symbol;
        var_15 = var_5 == (type_1 *)0x0;
      }
    }
    else {
      if ((var_9 != 0) && (var_8 == (type_1 *)0x0)) goto LAB_0004a136;
      if (var_9 == 0) {
        intel_state.in_scale = intel_state.in_scale - 1;
        return 0;
      }
LAB_0004a795:
      var_3 = e->X_op_symbol;
      var_15 = true;
      var_5 = (type_1 *)0x0;
    }
    var_6 = var_3;
    peVar9 = var_12(var_3);
    var_9 = function_1(peVar9);
    if (var_9 == 2) {
      var_13(var_6,(type_8)(var_14 + 0x180));
      var_18 = 1;
    }
    else {
      var_15 = (bool)(var_15 & var_9 != 0);
      var_18 = var_9;
    }
    if (var_15) {
      if (((var_8 == (type_1 *)0x0) && (intel_state.index != (type_13 *)0x0)) &&
         (var_5 = var_12(e->X_add_symbol), var_5 != (type_1 *)0x0)) {
LAB_0004a69c:
        var_16(var_5);
        if ((var_5->field_0x10 == '\x02') &&
           (((type_3)(intel_state.index)->reg_type & 0x40000000) == 0)) {
          var_10 = (type_10)var_5->X_add_number;
          var_9 = *(int *)((int)&var_5->X_add_number + 4);
        }
        else {
          *(type_12 *)&var_5->X_add_number = 0;
          var_10 = 0;
          var_9 = 0;
          *(type_12 *)((int)&var_5->X_add_number + 4) = 0;
        }
        var_9 = var_9 * (type_10)intel_state.scale_factor;
        var_17 = (type_3)(type_10)intel_state.scale_factor;
        intel_state.scale_factor._0_4_ = (type_10)(var_10 * var_17);
        intel_state.scale_factor._4_4_ =
             (int)(var_10 * var_17 >> 0x20) + intel_state.scale_factor._4_4_ * var_10 + var_9;
        intel_state.in_scale = intel_state.in_scale - 1;
      }
      else {
        intel_state.in_scale = intel_state.in_scale - 1;
      }
    }
    else {
      if ((var_5 != (type_1 *)0x0) && (var_9 != 0)) goto LAB_0004a69c;
      intel_state.in_scale = intel_state.in_scale - 1;
      if (var_18 == 0) {
        return 0;
      }
    }
    var_18 = var_1;
    if (intel_state.in_scale == 0) {
      if ((type_10)intel_state.scale_factor == 2 && intel_state.scale_factor._4_4_ == 0) {
        i.log2_scale_factor = 1;
      }
      else if (-intel_state.scale_factor._4_4_ < (int)(type_10)(2 < (type_10)intel_state.scale_factor)) {
        if ((type_10)intel_state.scale_factor == 4 && intel_state.scale_factor._4_4_ == 0) {
          i.log2_scale_factor = 2;
        }
        else {
          if (intel_state.scale_factor._4_4_ != 0 || (type_10)intel_state.scale_factor != 8)
          goto LAB_0004a8b9;
          i.log2_scale_factor = 3;
        }
      }
      else if (intel_state.scale_factor._4_4_ == 0 && (type_10)intel_state.scale_factor == 1) {
        i.log2_scale_factor = 0;
      }
      else {
LAB_0004a8b9:
        intel_state.index = (type_13 *)(var_19 + 0x2d0);
      }
    }
    goto LAB_00049f18;
  case 0x1d:
    var_3 = e->X_add_symbol;
    if (var_3 != (type_9 *)0x0) {
      peVar9 = var_12(var_3);
      var_9 = function_1(peVar9);
      if (var_9 == 2) {
        var_13(var_3,(type_8)(var_14 + 0x180));
      }
      else if (var_9 == 0) {
        return 0;
      }
      if ((-1 < var_1) && (var_5 != i.op[var_1].disps)) goto LAB_0004a3f0;
    }
    if (intel_state.in_offset == 0) {
      intel_state.in_bracket = intel_state.in_bracket + 1;
    }
    var_3 = e->X_op_symbol;
    var_5 = var_12(var_3);
    var_9 = function_1(var_5);
    if (var_9 == 2) {
      var_13(var_3,(type_8)(var_14 + 0x180));
      if (intel_state.in_offset == 0) {
        intel_state.in_bracket = intel_state.in_bracket - 1;
      }
    }
    else {
      if (intel_state.in_offset == 0) {
        intel_state.in_bracket = intel_state.in_bracket - 1;
      }
      if (var_9 == 0) {
        return 0;
      }
    }
    if (e->X_add_symbol != (type_9 *)0x0) {
      e->field_0x10 = 0x13;
      return 1;
    }
    var_3 = e->X_op_symbol;
    var_5 = var_12(var_3);
    var_21 = var_20(var_3);
    if (var_21 == (type_8)(var_14 + 0x180)) {
      var_10 = (type_10)e->X_add_number;
      var_9 = *(int *)((int)&e->X_add_number + 4);
      e->X_add_symbol = var_5->X_add_symbol;
      e->X_op_symbol = var_5->X_op_symbol;
      *(int *)&e->X_add_number = (int)var_5->X_add_number;
      *(type_12 *)((int)&e->X_add_number + 4) = *(type_12 *)((int)&var_5->X_add_number + 4);
      uVar4 = *(type_4 *)&var_5->field_0x10;
      uVar5 = var_5->X_md;
      poVar1 = &e->X_add_number;
      oVar6 = *poVar1;
      *(type_10 *)poVar1 = (int)*poVar1 + var_10;
      *(type_4 *)&e->field_0x10 = uVar4;
      e->X_md = uVar5;
      piVar2 = (int *)((int)&e->X_add_number + 4);
      *piVar2 = *piVar2 + var_9 + (type_10)var_22((type_10)oVar6,var_10);
      var_18 = var_1;
      goto LAB_00049f18;
    }
    if (var_5->field_0x10 == '\x03') {
      pcVar13 = var_23(var_5->X_add_symbol);
      var_9 = var_24(pcVar13,"_GLOBAL_OFFSET_TABLE_");
      if (var_9 == 0) {
        var_3 = var_5->X_add_symbol;
      }
    }
    e->X_add_symbol = var_3;
    e->X_op_symbol = (type_9 *)0x0;
    e->field_0x10 = 3;
    goto LAB_0004a395;
  case 0x1f:
    peVar9 = var_12(e->X_op_symbol);
    if (peVar9->field_0x10 == '\x05') goto LAB_0004a3f0;
    var_3 = e->X_op_symbol;
    peVar9 = var_12(var_3);
    var_9 = function_1(peVar9);
    if (var_9 == 2) {
      var_13(var_3,(type_8)(var_14 + 0x180));
    }
    else if (var_9 == 0) {
      return 0;
    }
    if ((-1 < var_1) && (var_5 != i.op[var_1].disps)) goto LAB_0004a3f0;
    var_3 = intel_state.seg;
    if (intel_state.in_offset == 0) {
      var_3 = e->X_add_symbol;
      if (intel_state.seg != (type_9 *)0x0) {
        exp._16_1_ = 0x1f;
        exp.X_add_symbol = e->X_add_symbol;
        exp.X_op_symbol = intel_state.seg;
        var_3 = var_25(&exp);
      }
    }
    intel_state.seg = var_3;
    var_3 = e->X_op_symbol;
    var_6 = var_3;
    var_8 = var_12(var_3);
    var_21 = var_20(var_3);
    if (var_21 == (type_8)(var_14 + 0x180)) goto LAB_0004a4cf;
    goto LAB_0004a379;
  case 0x30:
  case 0x31:
  case 0x32:
  case 0x33:
  case 0x34:
  case 0x35:
  case 0x36:
  case 0x37:
  case 0x38:
  case 0x39:
  case 0x3a:
  case 0x3b:
    if (intel_state.op_modifier == var_26) {
      intel_state.op_modifier = (type_10)var_4;
    }
  case 0x3c:
    var_5 = var_12(e->X_add_symbol);
    if (var_5->field_0x10 == '\x05') goto LAB_0004a3f0;
    var_3 = e->X_add_symbol;
    var_5 = var_12(var_3);
    var_9 = function_1(var_5);
    var_27 = var_14;
    if (var_9 == 2) {
      var_13(var_3,(type_8)(var_14 + 0x180));
    }
    else if (var_9 == 0) {
      return 0;
    }
    var_3 = e->X_add_symbol;
    var_6 = var_3;
    var_8 = var_12(var_3);
    var_21 = var_20(var_3);
    if (var_21 == (type_8)(var_27 + 0x180)) {
LAB_0004a4cf:
      var_10 = (type_10)e->X_add_number;
      var_9 = *(int *)((int)&e->X_add_number + 4);
      e->X_add_symbol = var_8->X_add_symbol;
      e->X_op_symbol = (type_9 *)((type_14 *)&var_8->X_op_symbol)->array[0];
      *(int *)&e->X_add_number = (int)var_8->X_add_number;
      *(type_12 *)((int)&e->X_add_number + 4) = *(type_12 *)((int)&var_8->X_add_number + 4)
      ;
      uVar4 = *(type_4 *)&var_8->field_0x10;
      uVar5 = var_8->X_md;
      poVar1 = &e->X_add_number;
      oVar6 = *poVar1;
      *(type_10 *)poVar1 = (int)*poVar1 + var_10;
      var_18 = var_1;
      *(type_4 *)&e->field_0x10 = uVar4;
      e->X_md = uVar5;
      piVar2 = (int *)((int)&e->X_add_number + 4);
      *piVar2 = *piVar2 + var_9 + (type_10)var_22((type_10)oVar6,var_10);
      goto LAB_00049f18;
    }
LAB_0004a379:
    if (var_8->field_0x10 == '\x03') {
      uVar19 = var_28 < (type_11 *)0xc;
      uVar21 = &stack0x00000000 == (type_11 *)0x58;
      var_29 = (type_7 *)var_23(var_8->X_add_symbol);
      var_9 = 0x16;
      var_30 = (type_7 *)"_GLOBAL_OFFSET_TABLE_";
      do {
        if (var_9 == 0) break;
        var_9 = var_9 + -1;
        uVar19 = *var_29 < *var_30;
        uVar21 = *var_29 == *var_30;
        var_29 = var_29 + (type_10)bVar22 * -2 + 1;
        var_30 = var_30 + (type_10)bVar22 * -2 + 1;
      } while ((bool)uVar21);
      if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {
        var_6 = var_8->X_add_symbol;
      }
    }
    e->X_op_symbol = (type_9 *)0x0;
    e->field_0x10 = 3;
    e->X_add_symbol = var_6;
LAB_0004a395:
    if (var_1 < 0) {
      return 1;
    }
    goto LAB_00049f28;
  case 0x3d:
    var_3 = e->X_add_symbol;
    intel_state.has_offset = 1;
    intel_state.in_offset = intel_state.in_offset + 1;
    peVar9 = var_12(var_3);
    var_9 = function_1(peVar9);
    if (var_9 == 2) {
      var_13(var_3,(type_8)(var_14 + 0x180));
      intel_state.in_offset = intel_state.in_offset - 1;
      var_9 = 1;
    }
    else {
      intel_state.in_offset = intel_state.in_offset - 1;
      if (var_9 == 0) {
        return 0;
      }
    }
    if ((((var_1 < 0) || (var_5 == i.op[var_1].disps)) &&
        (var_6 == (type_9 *)intel_state.base)) && (var_8 == (type_1 *)intel_state.index)
       ) {
      var_3 = e->X_add_symbol;
      var_6 = (type_9 *)var_9;
      local_40 = var_3;
      var_8 = var_12(var_3);
      var_21 = var_20(var_3);
      if (var_21 == (type_8)(var_14 + 0x180)) {
        var_10 = (type_10)e->X_add_number;
        var_9 = *(int *)((int)&e->X_add_number + 4);
        e->X_add_symbol = var_8->X_add_symbol;
        e->X_op_symbol = var_8->X_op_symbol;
        *(int *)&e->X_add_number = (int)var_8->X_add_number;
        *(type_12 *)((int)&e->X_add_number + 4) =
             *(type_12 *)((int)&var_8->X_add_number + 4);
        uVar4 = *(type_4 *)&var_8->field_0x10;
        uVar5 = var_8->X_md;
        poVar1 = &e->X_add_number;
        oVar6 = *poVar1;
        *(type_10 *)poVar1 = (int)*poVar1 + var_10;
        *(type_4 *)&e->field_0x10 = uVar4;
        e->X_md = uVar5;
        piVar2 = (int *)((int)&e->X_add_number + 4);
        *piVar2 = *piVar2 + var_9 + (type_10)var_22((type_10)oVar6,var_10);
        return (int)var_6;
      }
      if (var_8->field_0x10 == '\x03') {
        uVar19 = var_28 < (type_11 *)0xc;
        uVar21 = &stack0x00000000 == (type_11 *)0x58;
        var_29 = (type_7 *)var_23(var_8->X_add_symbol);
        var_9 = 0x16;
        var_30 = (type_7 *)"_GLOBAL_OFFSET_TABLE_";
        do {
          if (var_9 == 0) break;
          var_9 = var_9 + -1;
          uVar19 = *var_29 < *var_30;
          uVar21 = *var_29 == *var_30;
          var_29 = var_29 + (type_10)bVar22 * -2 + 1;
          var_30 = var_30 + (type_10)bVar22 * -2 + 1;
        } while ((bool)uVar21);
        if ((!(bool)uVar19 && !(bool)uVar21) == (bool)uVar19) {
          local_40 = var_8->X_add_symbol;
        }
      }
      e->X_op_symbol = (type_9 *)0x0;
      e->field_0x10 = 3;
      e->X_add_symbol = local_40;
      return (int)var_6;
    }
    goto LAB_0004a3f0;
  }
  var_3 = e->X_op_symbol;
  if (var_3 != (type_9 *)0x0) {
    peVar9 = var_12(var_3);
    var_9 = function_1(peVar9);
    if (var_9 == 2) {
      var_13(var_3,(type_8)(var_14 + 0x180));
    }
    else if (var_9 == 0) {
      return 0;
    }
  }
  if (e->field_0x10 == '\x13') {
    var_8 = (type_1 *)intel_state.index;
    if (var_1 < 0) {
      return 1;
    }
    if (i.op[var_1].disps != var_5) goto LAB_0004a3f0;
  }
  else if (((-1 < var_1) && (var_5 != i.op[var_1].disps)) ||
          (var_6 != (type_9 *)intel_state.base)) goto LAB_0004a3f0;
  var_18 = var_1;
  if (var_8 == (type_1 *)intel_state.index) {
LAB_00049f18:
    if ((-1 < var_18) && (e->field_0x10 == '\x03')) {
LAB_00049f28:
      if ((intel_state.in_offset == 0) &&
         (((var_21 = var_20(e->X_add_symbol),
           var_21 != (type_8)(var_14 + 0x180) && (var_31 != var_21)) &&
          (var_32 != var_21)))) {
        intel_state.is_mem = intel_state.is_mem | (intel_state.in_bracket != 0) + 1;
      }
    }
    return 1;
  }
LAB_0004a3f0:
  pcVar13 = (char *)var_33(0,"invalid use of register",5);
  var_34(pcVar13);
  return 0;
}


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

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

int __regparm3 MASKED(int *param_1)

{
  uint *puVar1;
  uint uVar2;
  ulonglong uVar3;
  byte bVar4;
  uint uVar5;
  int iVar6;
  undefined *puVar7;
  int iVar8;
  undefined4 uVar9;
  undefined *puVar10;
  int *piVar11;
  byte *pbVar12;
  char *__s1;
  int iVar13;
  byte *pbVar14;
  undefined1 uVar15;
  bool bVar16;
  undefined1 uVar17;
  byte bVar18;
  undefined1 auStack_4c [4];
  int *local_48;
  int local_44;
  int iStack_40;
  int iStack_30;
  int iStack_2c;
  undefined1 uStack_20;
  undefined4 uStack_14;
  
  bVar18 = 0;
  iVar13 = 0;
  uStack_14 = 0x49deb;
  if (-1 < DAT_00080558) {
    iVar13 = (&DAT_00089038)[DAT_00080558];
  }
  if (DAT_00088ef4 == 0) {
    return 1;
  }
  local_44 = DAT_00088e64;
  local_48 = DAT_00088e68;
  bVar4 = *(byte *)(param_1 + 4);
  uVar5 = (uint)bVar4;
  if (bVar4 < 0x3e) {
    iVar8 = *(int *)(&DAT_00064b68 + uVar5 * 4);
    switch(uVar5) {
    default:
      break;
    case 2:
      if (*(short *)((int)param_1 + 0x12) != 0) {
        iVar13 = FUN_00041d50();
        return iVar13;
      }
      iVar8 = *param_1;
      if (iVar8 != 0) goto LAB_00049e58;
      if (-1 < DAT_00080558) goto LAB_0004a3ce;
      goto LAB_0004a47d;
    case 5:
      iVar13 = FUN_00041d50();
      if (iVar13 != 2) {
        return iVar13;
      }
      if (-param_1[3] < (int)(uint)(0xfffe < (uint)param_1[2])) {
                    /* WARNING: Subroutine does not return */
        FUN_0002be80("../../gas/config/tc-i386-intel.c",0x1ec,"i386_intel_simplify",iVar8 + 0x80000)
        ;
      }
      *(undefined1 *)(param_1 + 4) = 2;
      *(short *)((int)param_1 + 0x12) = (short)param_1[2] + 1;
      param_1[2] = 0;
      param_1[3] = 0;
      return 2;
    case 10:
      if (DAT_00080558 < 0) {
        iVar8 = *param_1;
        if (iVar8 == 0) goto LAB_0004a47d;
        goto LAB_00049e58;
      }
      if (DAT_00088e54 == 0) {
        iVar8 = *param_1;
        if (iVar8 == 0) goto LAB_0004a3ce;
        goto LAB_00049e58;
      }
      if (DAT_00088e58 == 0) {
        uRam00088e6c = 1;
        iRam00088e70 = 0;
      }
      iVar13 = *param_1;
      DAT_00088e58 = DAT_00088e58 + 1;
      FUN_0003b610(iVar13);
      iVar8 = MASKED();
      if (iVar8 == 2) {
        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);
        if (local_48 == (int *)0x0) goto code_r0x0004a136;
code_r0x0004a795:
        iVar13 = param_1[1];
        bVar16 = true;
        piVar11 = (int *)0x0;
      }
      else {
        if ((iVar8 == 0) || (local_48 != (int *)0x0)) {
          if (iVar8 == 0) {
            DAT_00088e58 = DAT_00088e58 + -1;
            return 0;
          }
          goto code_r0x0004a795;
        }
code_r0x0004a136:
        iVar13 = param_1[1];
        bVar16 = true;
        piVar11 = DAT_00088e68;
        if (DAT_00088e68 != (int *)0x0) {
          piVar11 = (int *)FUN_0003b610(iVar13);
          iVar13 = param_1[1];
          bVar16 = piVar11 == (int *)0x0;
        }
      }
      local_44 = iVar13;
      FUN_0003b610(iVar13);
      iVar13 = MASKED();
      if (iVar13 == 2) {
        FUN_00038b00(local_44,PTR__bfd_std_section_0007ffb0 + 0x180);
        iVar8 = 1;
      }
      else {
        bVar16 = (bool)(bVar16 & iVar13 != 0);
        iVar8 = iVar13;
      }
      if (bVar16) {
        if (((local_48 == (int *)0x0) && (DAT_00088e68 != (int *)0x0)) &&
           (piVar11 = (int *)FUN_0003b610(*param_1), piVar11 != (int *)0x0)) {
code_r0x0004a69c:
          FUN_00021620(piVar11);
          if (((char)piVar11[4] == '\x02') && ((*(byte *)((int)DAT_00088e68 + 7) & 0x40) == 0)) {
            uVar5 = piVar11[2];
            iVar13 = piVar11[3];
          }
          else {
            piVar11[2] = 0;
            uVar5 = 0;
            iVar13 = 0;
            piVar11[3] = 0;
          }
          iVar13 = iVar13 * uRam00088e6c;
          uVar3 = (ulonglong)uRam00088e6c;
          uRam00088e6c = (uint)(uVar5 * uVar3);
          iRam00088e70 = (int)(uVar5 * uVar3 >> 0x20) + iRam00088e70 * uVar5 + iVar13;
          DAT_00088e58 = DAT_00088e58 + -1;
        }
        else {
          DAT_00088e58 = DAT_00088e58 + -1;
        }
      }
      else {
        if ((piVar11 != (int *)0x0) && (iVar13 != 0)) goto code_r0x0004a69c;
        DAT_00088e58 = DAT_00088e58 + -1;
        if (iVar8 == 0) {
          return 0;
        }
      }
      iVar6 = DAT_00080558;
      if (DAT_00088e58 == 0) {
        if (uRam00088e6c == 2 && iRam00088e70 == 0) {
          DAT_0008907c = 1;
        }
        else if (-iRam00088e70 < (int)(uint)(2 < uRam00088e6c)) {
          if (uRam00088e6c == 4 && iRam00088e70 == 0) {
            DAT_0008907c = 2;
          }
          else {
            if (iRam00088e70 != 0 || uRam00088e6c != 8) goto code_r0x0004a8b9;
            DAT_0008907c = 3;
          }
        }
        else if (iRam00088e70 == 0 && uRam00088e6c == 1) {
          DAT_0008907c = 0;
        }
        else {
code_r0x0004a8b9:
          DAT_00088e68 = (int *)(PTR_i386_regtab_0007ff5c + 0x2d0);
        }
      }
      goto code_r0x00049f18;
    case 0x1d:
      iVar8 = *param_1;
      if (iVar8 != 0) {
        FUN_0003b610(iVar8);
        iVar6 = MASKED();
        if (iVar6 == 2) {
          FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
        }
        else if (iVar6 == 0) {
          return 0;
        }
        if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;
      }
      if (DAT_00088e50 == 0) {
        DAT_00088e54 = DAT_00088e54 + 1;
      }
      iVar13 = param_1[1];
      FUN_0003b610(iVar13);
      iVar8 = MASKED();
      if (iVar8 == 2) {
        FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);
        if (DAT_00088e50 == 0) {
          DAT_00088e54 = DAT_00088e54 + -1;
        }
      }
      else {
        if (DAT_00088e50 == 0) {
          DAT_00088e54 = DAT_00088e54 + -1;
        }
        if (iVar8 == 0) {
          return 0;
        }
      }
      if (*param_1 != 0) {
        *(undefined1 *)(param_1 + 4) = 0x13;
        return 1;
      }
      iVar13 = param_1[1];
      piVar11 = (int *)FUN_0003b610(iVar13);
      puVar7 = (undefined *)FUN_00038ac0(iVar13);
      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {
        uVar2 = param_1[2];
        iVar13 = param_1[3];
        *param_1 = *piVar11;
        param_1[1] = piVar11[1];
        param_1[2] = piVar11[2];
        param_1[3] = piVar11[3];
        iVar8 = piVar11[4];
        puVar1 = (uint *)(param_1 + 2);
        uVar5 = *puVar1;
        *puVar1 = *puVar1 + uVar2;
        param_1[4] = iVar8;
        param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);
        iVar6 = DAT_00080558;
        goto code_r0x00049f18;
      }
      if ((char)piVar11[4] == '\x03') {
        __s1 = (char *)FUN_00038a80(*piVar11);
        iVar8 = strcmp(__s1,"_GLOBAL_OFFSET_TABLE_");
        if (iVar8 == 0) {
          iVar13 = *piVar11;
        }
      }
      *param_1 = iVar13;
      param_1[1] = 0;
      *(undefined1 *)(param_1 + 4) = 3;
      goto code_r0x0004a395;
    case 0x1f:
      iVar8 = FUN_0003b610(param_1[1]);
      if (*(char *)(iVar8 + 0x10) == '\x05') goto LAB_0004a3f0;
      iVar8 = param_1[1];
      FUN_0003b610(iVar8);
      iVar6 = MASKED();
      if (iVar6 == 2) {
        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
      }
      else if (iVar6 == 0) {
        return 0;
      }
      if ((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) goto LAB_0004a3f0;
      iVar13 = DAT_00088e74;
      if (DAT_00088e50 == 0) {
        iVar13 = *param_1;
        if (DAT_00088e74 != 0) {
          uStack_20 = 0x1f;
          iStack_30 = *param_1;
          iStack_2c = DAT_00088e74;
          iVar13 = FUN_00021220(&iStack_30);
        }
      }
      DAT_00088e74 = iVar13;
      iVar13 = param_1[1];
      local_44 = iVar13;
      local_48 = (int *)FUN_0003b610(iVar13);
      puVar7 = (undefined *)FUN_00038ac0(iVar13);
      if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) goto code_r0x0004a4cf;
      goto code_r0x0004a379;
    case 0x30:
    case 0x31:
    case 0x32:
    case 0x33:
    case 0x34:
    case 0x35:
    case 0x36:
    case 0x37:
    case 0x38:
    case 0x39:
    case 0x3a:
    case 0x3b:
      goto code_r0x00049f90;
    case 0x3c:
      goto code_r0x00049fa0;
    case 0x3d:
      iVar8 = *param_1;
      DAT_00088e4c = 1;
      DAT_00088e50 = DAT_00088e50 + 1;
      FUN_0003b610(iVar8);
      iVar6 = MASKED();
      if (iVar6 == 2) {
        FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
        DAT_00088e50 = DAT_00088e50 + -1;
        iVar6 = 1;
      }
      else {
        DAT_00088e50 = DAT_00088e50 + -1;
        if (iVar6 == 0) {
          return 0;
        }
      }
      if ((((DAT_00080558 < 0) || (iVar13 == (&DAT_00089038)[DAT_00080558])) &&
          (local_44 == DAT_00088e64)) && (local_48 == DAT_00088e68)) {
        iVar13 = *param_1;
        local_44 = iVar6;
        iStack_40 = iVar13;
        local_48 = (int *)FUN_0003b610(iVar13);
        puVar7 = (undefined *)FUN_00038ac0(iVar13);
        if (puVar7 == PTR__bfd_std_section_0007ffb0 + 0x180) {
          uVar2 = param_1[2];
          iVar13 = param_1[3];
          *param_1 = *local_48;
          param_1[1] = local_48[1];
          param_1[2] = local_48[2];
          param_1[3] = local_48[3];
          iVar8 = local_48[4];
          puVar1 = (uint *)(param_1 + 2);
          uVar5 = *puVar1;
          *puVar1 = *puVar1 + uVar2;
          param_1[4] = iVar8;
          param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);
          return local_44;
        }
        if ((char)local_48[4] == '\x03') {
          uVar15 = auStack_4c < (undefined1 *)0xc;
          uVar17 = &stack0x00000000 == (undefined1 *)0x58;
          pbVar12 = (byte *)FUN_00038a80(*local_48);
          iVar13 = 0x16;
          pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";
          do {
            if (iVar13 == 0) break;
            iVar13 = iVar13 + -1;
            uVar15 = *pbVar12 < *pbVar14;
            uVar17 = *pbVar12 == *pbVar14;
            pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
            pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;
          } while ((bool)uVar17);
          if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {
            iStack_40 = *local_48;
          }
        }
        param_1[1] = 0;
        *(undefined1 *)(param_1 + 4) = 3;
        *param_1 = iStack_40;
        return local_44;
      }
      goto LAB_0004a3f0;
    }
  }
  iVar8 = *param_1;
  if (iVar8 != 0) {
LAB_00049e58:
    FUN_0003b610(iVar8);
    iVar6 = MASKED();
    if (iVar6 == 2) {
      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
      bVar4 = *(byte *)(param_1 + 4);
    }
    else {
      if (iVar6 == 0) {
        return 0;
      }
      bVar4 = *(byte *)(param_1 + 4);
    }
  }
  if ((byte)(bVar4 - 0x13) < 2) {
    local_44 = DAT_00088e64;
    local_48 = DAT_00088e68;
    if (-1 < DAT_00080558) {
      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;
      goto LAB_0004a47d;
    }
  }
  else {
    if (-1 < DAT_00080558) {
LAB_0004a3ce:
      if (iVar13 != (&DAT_00089038)[DAT_00080558]) goto LAB_0004a3f0;
    }
    if (local_44 != DAT_00088e64) goto LAB_0004a3f0;
LAB_0004a47d:
    if (local_48 != DAT_00088e68) goto LAB_0004a3f0;
  }
  iVar8 = param_1[1];
  if (iVar8 != 0) {
    FUN_0003b610(iVar8);
    iVar6 = MASKED();
    if (iVar6 == 2) {
      FUN_00038b00(iVar8,PTR__bfd_std_section_0007ffb0 + 0x180);
    }
    else if (iVar6 == 0) {
      return 0;
    }
  }
  if ((char)param_1[4] == '\x13') {
    local_48 = DAT_00088e68;
    if (DAT_00080558 < 0) {
      return 1;
    }
    if ((&DAT_00089038)[DAT_00080558] != iVar13) goto LAB_0004a3f0;
  }
  else if (((-1 < DAT_00080558) && (iVar13 != (&DAT_00089038)[DAT_00080558])) ||
          (local_44 != DAT_00088e64)) goto LAB_0004a3f0;
  iVar6 = DAT_00080558;
  if (local_48 != DAT_00088e68) goto LAB_0004a3f0;
  goto code_r0x00049f18;
code_r0x00049f90:
  if (DAT_00088e40 == 1) {
    DAT_00088e40 = uVar5;
  }
code_r0x00049fa0:
  iVar13 = FUN_0003b610(*param_1);
  if (*(char *)(iVar13 + 0x10) == '\x05') {
LAB_0004a3f0:
    uVar9 = dcgettext(0,"invalid use of register",5);
    FUN_0002bd60(uVar9);
    return 0;
  }
  iVar13 = *param_1;
  FUN_0003b610(iVar13);
  iVar8 = MASKED();
  puVar7 = PTR__bfd_std_section_0007ffb0;
  if (iVar8 == 2) {
    FUN_00038b00(iVar13,PTR__bfd_std_section_0007ffb0 + 0x180);
  }
  else if (iVar8 == 0) {
    return 0;
  }
  iVar13 = *param_1;
  local_44 = iVar13;
  local_48 = (int *)FUN_0003b610(iVar13);
  puVar10 = (undefined *)FUN_00038ac0(iVar13);
  if (puVar10 != puVar7 + 0x180) {
code_r0x0004a379:
    if ((char)local_48[4] == '\x03') {
      uVar15 = auStack_4c < (undefined1 *)0xc;
      uVar17 = &stack0x00000000 == (undefined1 *)0x58;
      pbVar12 = (byte *)FUN_00038a80(*local_48);
      iVar13 = 0x16;
      pbVar14 = (byte *)"_GLOBAL_OFFSET_TABLE_";
      do {
        if (iVar13 == 0) break;
        iVar13 = iVar13 + -1;
        uVar15 = *pbVar12 < *pbVar14;
        uVar17 = *pbVar12 == *pbVar14;
        pbVar12 = pbVar12 + (uint)bVar18 * -2 + 1;
        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;
      } while ((bool)uVar17);
      if ((!(bool)uVar15 && !(bool)uVar17) == (bool)uVar15) {
        local_44 = *local_48;
      }
    }
    param_1[1] = 0;
    *(undefined1 *)(param_1 + 4) = 3;
    *param_1 = local_44;
code_r0x0004a395:
    if (DAT_00080558 < 0) {
      return 1;
    }
    goto code_r0x00049f28;
  }
code_r0x0004a4cf:
  uVar2 = param_1[2];
  iVar13 = param_1[3];
  *param_1 = *local_48;
  param_1[1] = local_48[1];
  param_1[2] = local_48[2];
  param_1[3] = local_48[3];
  iVar8 = local_48[4];
  puVar1 = (uint *)(param_1 + 2);
  uVar5 = *puVar1;
  *puVar1 = *puVar1 + uVar2;
  iVar6 = DAT_00080558;
  param_1[4] = iVar8;
  param_1[3] = param_1[3] + iVar13 + (uint)CARRY4(uVar5,uVar2);
code_r0x00049f18:
  if (iVar6 < 0) {
    return 1;
  }
  if ((char)param_1[4] != '\x03') {
    return 1;
  }
code_r0x00049f28:
  if ((((DAT_00088e50 == 0) &&
       (puVar7 = (undefined *)FUN_00038ac0(*param_1),
       puVar7 != PTR__bfd_std_section_0007ffb0 + 0x180)) && (DAT_000897ec != puVar7)) &&
     (DAT_00089720 != puVar7)) {
    DAT_00088e44 = DAT_00088e44 | (DAT_00088e54 != 0) + 1;
  }
  return 1;
}

